`
neptune
  • 浏览: 362080 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

spring2.5方法级@ModelAttribute设计上有问题

阅读更多
@ModelAttribute("types")
public Collection<PetType> populatePetTypes(){
   return this.clinie.getPetTypes();
}
这段代码,一看就知道是为表单提供一个petType列表,供下拉列表使用(spring的例子)。

但这个@ModelAttribute可有问题,它可不管你请求方式是GET还是POST都,其都会被调用。我们都知道这个pettypes就是为表单使用下拉列表使用的,在post提交时有什么用呀,提交成功一般情况下都要转换到其它页面,这个方法还要被执行,毫无用处。

最好还是不要使用方法级的@ModelAttribute了.

如果要实现同样的目的,可以定义一个方法
public String showForm(Model model){
   model.addAttribute("types",this.clinie.getPetTypes());
   return viewName;
}
让setupForm最后时调用showForm返回。
让processSubmit方法验证出错,需要返回原表单时,调用showForm返回.


分享到:
评论
2 楼 neptune 2008-07-10  
你看看spring2.5的sample就知道了,他的目的就是为了reference data用的
1 楼 bottom 2008-07-10  
type是ModelAttribute,但types应该属于reference data。不应该作为ModelAttribute。

相关推荐

    Spring 2.5 基于注解驱动的Spring MVC

    在Spring 2.5中,你可以通过在类或方法上添加注解来定义一个Controller。例如,使用`@Controller`注解标记一个类,表明这个类是一个处理HTTP请求的Controller。这样,你不再需要让Controller实现特定的接口或者在XML...

    使用 Spring 2.5 基于注解驱动的 Spring MVC.doc

    在 Spring 2.5 版本中,Spring MVC 带来了革命性的变化,引入了注解驱动的功能,极大地简化了开发流程,提高了开发效率。本文将深入探讨这些注解的使用,帮助开发者理解如何利用注解配置替代传统的基于 XML 的 ...

    简单易懂的Spring2.5简明教程

    10. **Web应用上下文**:Spring 2.5中的WebApplicationContext允许在Web环境中管理和共享bean,同时提供了与Servlet容器的集成,如`DispatcherServlet`,它是Spring MVC的核心。 这个简明教程将深入浅出地介绍这些...

    spring2.5相关包

    Spring 2.5 是 Spring 框架的一个重要版本,发布于2007年,它带来了许多增强和新特性,极大地提升了开发者的生产力。在这个版本中,Spring 对 IoC(控制反转)和 AOP(面向切面编程)的支持更加完善,同时也引入了对...

    Spring2.5_注解介绍(3.0通用)

    Spring框架在2.5版本引入了对注解的广泛支持,这一特性在后续的3.0版本中得到了进一步增强,并且成为了Spring应用的核心部分。注解的使用极大地简化了Spring配置,提高了代码的可读性和可维护性。下面将详细介绍其中...

    spring2.5 api 完全参考手册chm api

    Spring作为一个广泛应用的Java企业级应用框架,其2.5版本在许多方面进行了改进和增强,这些改进对提升开发效率和应用程序的稳定性有着显著的作用。 1. **IoC(Inversion of Control)容器**:Spring 2.5中的IoC容器...

    使用 Spring 2.5 基于注解驱动的 Spring MVC

    4. **@ModelAttribute**:用于将方法返回值或参数绑定到模型属性上,可以在方法签名前使用。 #### 示例分析 以下是一个使用注解的Controller示例——`BbtForumController`: ```java package com.baobaotao.web; ...

    Spring2.5_基于注解驱动的SpringMVC

    Spring框架作为Java企业级开发中广泛使用的框架之一,自Spring2.0以来就对其MVC框架进行了重大的升级,到了Spring2.5版本更是引入了注解驱动的功能。这意味着开发者不再需要让Controller继承特定的接口或者在XML配置...

    spring2.0MVC+spring2.5MVC+portletMVC

    至于Portlet MVC,它是Spring MVC的一个扩展,专为portlet应用设计。portlet应用常在门户服务器中运行,如Liferay或WebSphere Portal。Portlet MVC主要特性包括: 1. **portlet生命周期**:portlet有初始化、渲染、...

    Spring 2.5 mvc例子

    在 Spring 2.5 版本中,这个框架已经相当成熟,为开发者提供了强大的功能和灵活的配置选项。 ### 1. MVC 模式 模型-视图-控制器模式是软件设计中的一个经典架构模式,它将应用程序逻辑分离开来,提高了代码的可...

    spring2.5源码

    - Spring 2.5的Web MVC框架有重大改进,包括注解驱动的控制器(`@Controller`),模型属性绑定(`@ModelAttribute`),以及视图解析策略等。 10. **测试支持**: - 强大的测试框架,如`@ContextConfiguration`、`...

    Spring2.5 注解介绍(3.0通用)

    启用Spring MVC的注解功能,需要配置`&lt;bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"&gt;`,这使得Spring MVC能够处理注解方法,将HTTP请求映射到注解的控制器类上。...

    Spring 2.5 基于注解驱动的 Spring MVC.docx

    2. **@ModelAttribute**:此注解常用于控制器方法参数中,它会从请求中获取数据并将其绑定到模型属性上,或者在返回视图之前将对象添加到模型中。 3. **@RequestMapping**:除了在类级别上使用外,还可以在方法级别...

    Spring2.5_注解介绍(3.0通用).pdf

    ### Spring2.5与3.0注解详解 在探讨Spring框架中注解的应用之前,我们首先需要理解注解在Java编程语言中的基础概念。注解是Java SE 5引入的一种元数据机制,用于在代码中嵌入元数据,而Spring框架充分利用了这一...

    使用 Spring 2_5 基于注解驱动的 Spring MVC

    6. **自动扫描和组件发现**:在Spring 2.5中,你可以通过设置`&lt;context:component-scan&gt;`标签启用组件扫描,让Spring自动发现并注册带有注解的类,包括`@Controller`、`@Service`、`@Repository`等。 7. **简化视图...

    Spring-mvc-showcase

    @ModelAttribute 注解用于将请求参数绑定到方法参数,而 @Valid 注解配合 Validation API 可以进行数据校验。 9. **RESTful 风格**:项目中可能会包含 RESTful 风格的 URL 设计,使用 HTTP 方法(GET、POST、PUT、...

    spring MVC

    pring 容器管理的 Bean,而在这里,@Controller 注解的作用是标识该类是一个 MVC 控制器,使得 Spring MVC 框架能够识别并处理它。@RequestMapping 注解则用于映射 HTTP 请求到特定的方法,这里它匹配 "/forum.do" ...

    spring-framework-2.5.5

    事务管理是企业级应用的核心部分,Spring 2.5.5提供了声明式和编程式的事务管理。声明式事务管理通过配置或注解来控制事务的边界,如`@Transactional`,而编程式事务管理则通过TransactionTemplate或...

    spring-web-2.5.jar

    org.springframework.web.bind.annotation.ModelAttribute.class org.springframework.web.bind.annotation.RequestMapping.class org.springframework.web.bind.annotation.RequestMethod.class org.spring...

Global site tag (gtag.js) - Google Analytics