User
public class User {
private int id;
private String userName;
//省掉了getter和setter方法,用的时候要加上
}
FormAction
public class InFormAction extends SimpleFormController{
/* (non-Javadoc)
* @see org.springframework.web.servlet.mvc.SimpleFormController#onSubmit(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.Object, org.springframework.validation.BindException)
*/
@Override
protected ModelAndView onSubmit(HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors)
throws Exception {
User user = (User)command;
ModelAndView mav=new ModelAndView(getSuccessView());
mav.addObject("user",user);
return mav;
}
@Override
protected Object formBackingObject(HttpServletRequest request) throws Exception {
User user = new User();
if(null==request.getParameter("id")) {
return user;
}
return request;
}
}
添加用户流程
第一: <a href="infoForm.do">添加用户</a> 点击该链接,会根据infoForm.do找到dispatcherContext.xml里所对应的一个FormAction
配置如下:<bean name="/infoForm.do" class="com.edu.view.console.InFormAction">
<!--添加页面-->
<property name="formView" value="addInfoForm"/>
<!--添加成功显示页面 -->
<property name="successView" value="InfoList"/>
</bean>
第二:进入InFormAction,会执行formBackingObject方法,他会返回一个Model给添加页面
第三:此时添加页面会显示,添加用户名,点击确定,又会进入InFormAction,执行formBackingObject(提示这一步就没有不要进入formBackingObject,可是不明白SimpleFormController为什么又进入这一步)
在SimpleFormController方法中有null==request.getParameter("id"),就是判断你是新增还是修改。如果在页面上你传递的URL中存在id参宿,则为修改
SimpleFormController主要作用就是给视图返回数据的(无论是新增还是修改)
第四:走完SimpleFormController,会走onSubmit方法,该方法中的Object command参数就是页面上的数据Model(注意添加用户页面上的属性名字必须跟User里的属性一致,否则会报错),跳转到成功页面
源码参照附近,部署到MyEclipse就可以运行
分享到:
相关推荐
例如,一个简单的基于注解的控制器可能如下所示: ```java @Controller @RequestMapping("/form") public class MyFormController { @InitBinder public void initBinder(WebDataBinder binder) { // 配置数据...
springMVC3学习(六)--SimpleFormController(源码) 文章地址:http://blog.csdn.net/itmyhome1990/article/details/25988733
在这个简单的Spring MVC登录例子中,我们看到了如何构建一个基本的登录功能,包括用户验证和数据绑定。 首先,我们有一个`Login`类,它是`SimpleFormController`的扩展。`SimpleFormController`是Spring MVC早期...
首先,`SimpleFormController`是Spring MVC早期版本中提供的一个抽象控制器,主要用于处理表单提交。它内置了对HTTP请求方法(GET和POST)的处理,简化了表单验证和模型数据的绑定过程。`SimpleFormController`通常...
如果你的控制器不需要处理表单数据,可以选择不使用表单控制器,这是Spring MVC与Struts的一个显著区别。 Spring MVC遵循“开闭原则”,即对扩展开放,对修改关闭。框架的核心类的某些方法被声明为final,不允许...
这意味着你可以在一个流程中使用Struts、Spring MVC、Tapestry、JSP或其他技术。 SWF的工作原理基于状态机的概念,一个Web流程由一组状态(states)组成,每个状态代表流程中的一个节点,如显示一个视图或执行一个...
例如,LoginBankController 是一个继承自 SimpleFormController 的控制器,它负责处理用户登录请求。 视图 在 Spring MVC 中,视图是负责渲染用户界面的组件。视图可以是 JSP、Velocity、Freemarker 等模板引擎。...
Login类继承自SimpleFormController,这是一个SpringMVC框架提供的控制器,用于处理表单提交的数据。Login类中的方法onSubmit()是处理表单提交的主要方法。在这个方法中,我们可以看到,SpringMVC框架提供了一个...
在一个Web应用中,经常需要实现用户能够在一个表单中上传多个文件及文本信息的功能。本文将详细介绍如何在基于Tomcat5.0.30与Spring Framework的环境下实现这一功能。 ### 一、背景介绍 在实际开发过程中,很多...
Spring支持属性的引用和自动绑定功能,这意味着可以通过简单的配置将一个Bean的属性值绑定到另一个Bean的属性上。 #### 十、集合对象注入 除了简单的类型注入,Spring还支持复杂类型的注入,如列表(List)、集合...
- **示例**:定义一个使用`IntroductionAdvice`的切面,为目标对象动态添加一个新方法。 #### 自动代理 - **定义**:Spring AOP支持自动为符合特定条件的目标对象创建代理。 - **示例**:通过`@AspectJ`注解和`@...
这与传统的实现 `org.springframework.web.servlet.mvc.Controller` 接口或者继承 `SimpleFormController` 或 `MultiActionController` 不同,`@Controller` 注解使得我们的类变成了一个纯粹的 POJO,无需额外的接口...
Spring MVC 入门 从一个最简单的 Spring Web 应用程式,来看看 Spring MVC 框架的架构与 API 组成元素。 第一个 Spring MVC 程式 WebApplicationContext Handler Mapping Handler ...
3.2 版本是包含SimpleFormController的最后一个版本,这将允许更轻松的迁移路径。 现在可以选择使用SimpleFormController虽然已弃用),或者切换到@Controller 。 JDK从1.4更新到1.6,代码保持不变。为...
控制器是负责处理请求和响应的组件,它可以是一个简单的控制接口,也可以是一个复杂的控制器,例如 AbstractController、AbstractCommandController、MultiActionController、SimpleFormController 和 ...
- **默认控制器接口**:默认情况下,Spring Web MVC提供了一个非常简单的`Controller`接口,它只有一个`handleRequest()`方法,返回一个`ModelAndView`对象。 - **内置实现类**:除了基本的`Controller`接口外,...
Spring作为一个全面的框架,包括了Bean配置基础、面向切面编程(AOP)、JDBC抽象层、事务管理等特性,允许开发者根据需求选择性地使用其组件。 1. **核心理念与优势** Spring的核心设计理念是实现逻辑层和Web层的...
去几年,REST逐渐成为影响Web框架、Web协议与Web应用设计的重要概念...更进一步,如果你手头有一个Spring MVC应用,使用了控制类继承(SimpleFormController等),你可能还意识不到现在的Spring MVC对REST广泛的支持。
例如,你可以创建一个SimpleController类,并定义一个处理方法`handleRequest`,它会解析请求参数并生成相应的响应。下面是一个简化的示例: ```java import org.springframework.web.bind.annotation....