SimpleFormController已经在spring3.0及以后的版本中废除,学习没什么实际用处,但是对了解spring框架本身还是有做用的。SimpleFormController顾名思义这个控制器是为了提交表单来设计的。这里主要对test-servlet.xml文件里关于Controller的配制做一下解释。
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="add_emp.test">addEmpController</prop> </props> </property> </bean> <bean id="addEmpController" class="test.EmployeeFormController"> <property name="commandClass" value="test.Employee"/> <property name="formView" value="add_emp"/> <property name="successView" value="success"/> </bean>
当前端控制器通过读取web.xml文件中的配制找到配置的后缀扩展,然后把拦截到的请求交给相应的handlerMapping进行处理,在这个程序中,将把相应的请求交给addEmpController来处理,因为是使用的是SimpleFormController,所以这里的配置就比用CommondController简单点,这里只需要一个控制器,而不需要为显示页面与添加完后提交各设置一个控制器。 如下:
<bean id="addEmpController" class="test.EmployeeFormController"> <property name="commandClass" value="test.Employee"/> <property name="formView" value="add_emp"/> <property name="successView" value="success"/> </bean>
在这里配置了三个参数,commandClass属性的作用是:进行自动填充,在表单中添加完form提交后,不用手动的从request中取数据,而由spring框架来帮忙完成。formView的作用是:当一个请求是以get的方式提交过来,而不是提交表单的post,Spring框架就会自动解析出用户是要显示表单页面,而不是要提交表单页面,如果是以post方式提交,spring框架就会解析出用户是点击submit按钮提交表单,从而把相应的数据提交给SimpleFormController的实现类来处理,处理完成后就会用到第三个属性:successView,它的配制是为了说明在处理成功后转给那个视图。
例如:http://localhost:8080/test/add_emp.test,注意,这里是在web.xml中配置拦截扩展名为test的请求,如下:
<servlet> <servlet-name>test</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>test</servlet-name> <url-pattern>*.test</url-pattern> </servlet-mapping>
当在浏览器中输入http://localhost:8080/test/add_emp.test后就会显示出添加数据的表单页面,如下图:
注意这时的表单action为空,并没有添写要提交给那个acion来处理当前的请求,spring会自动的提交给当前的url来处理,及:http://localhost:8080/test/add_emp.test,如下图:
<!--StartFragment -->注意这里要配制提交的方式为post方式提交,这样spring才能判断出是要交给SimpleFormController来处理。
接下来看一个控制器类EmployeeFormController.java的实现:
public class EmployeeFormController extends SimpleFormController { @Override protected ModelAndView onSubmit(Object command) throws Exception { Employee emp = (Employee) command; System.out.println(emp); return new ModelAndView(getSuccessView()); } @Override protected Map referenceData(HttpServletRequest request) throws Exception { Map<String, Object> model = new HashMap<String, Object>(); model.put("deptList", new String[]{"sales","manage"}); return model; } @Override protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception { binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true)); } }
onSubmit方法,顾名思义知道其是post后所要执行的方法,referenceData方法是为了在页面上显示部门列表来定义的方法,这是引用的一个外部模型。initBinder是为了能正确的把日期进行填充。
相关推荐
Spring MVC例子 有SimpleFormController ,MultiationController等控制器的应用介绍.算是比较完整的例子大家看看吧。
去几年,REST逐渐成为影响Web框架、Web协议与Web应用设计的重要概念...更进一步,如果你手头有一个Spring MVC应用,使用了控制类继承(SimpleFormController等),你可能还意识不到现在的Spring MVC对REST广泛的支持。
NULL 博文链接:https://mgz-99-163-com.iteye.com/blog/690417
2.3.2 使用MVC模式的不足之处 2.4 目前市场上常见的轻量级J2EE开发容器 2.5 小结 第二篇 建立和使用J2EE的开发平台 第三章 建立Java的开发平台 3.1 建立Java的开发环境 3.1.1 下载JDK 3.1.2 安装JDK 3.1.3 设定Path...
2.3.2 使用MVC模式的不足之处 2.4 目前市场上常见的轻量级J2EE开发容器 2.5 小结 第二篇 建立和使用J2EE的开发平台 第三章 建立Java的开发平台 3.1 建立Java的开发环境 3.1.1 下载JDK 3.1.2 安装JDK 3.1.3 设定Path...
2.3.2 使用MVC模式的不足之处 2.4 目前市场上常见的轻量级J2EE开发容器 2.5 小结 第二篇 建立和使用J2EE的开发平台 第三章 建立Java的开发平台 3.1 建立Java的开发环境 3.1.1 下载JDK 3.1.2 安装JDK 3.1.3 设定Path...
Controller 的类别 介绍如何在 Controller上搭配使用验证器(Validator)、如何实作Command资料的型态转换,以及如何使用Spring的相关API来实作档案上传的功能。 实作 Validator 使用 PropertyEditor ...
一个基于Spring MVC的网络平台,用于加密货币交易和转移 框架:Spring mvc 5.2.3.RELEASE。 查看:JSP。 数据持久性:Hibernate5.4.10.Final。 数据库:MySQL 8.0.21 Java:1.8。 用户表单提交:...
Spring的web框架是围绕...你可以通过实现这个接口来生成自己的控制器(也可以称之为处理器),但是从Spring提供的一系列控制器继承会更省事,比如AbstractController、AbstractCommandController和SimpleFormController
springMVC3学习(六)--SimpleFormController(源码) 文章地址:http://blog.csdn.net/itmyhome1990/article/details/25988733
2.3.2 使用MVC模式的不足之处 2.4 目前市场上常见的轻量级J2EE开发容器 2.5 小结 第二篇 建立和使用J2EE的开发平台 第三章 建立Java的开发平台 3.1 建立Java的开发环境 3.1.1 下载JDK 3.1.2 安装JDK 3.1.3 设定Path...
自己写的spring表单绑定的小例子,分别使用SimpleFormController,MultiActionController,spring的form tag和validator。 还在MultiActionController里面实现了表单的绑定
All Classes AbstractAdvisorAutoProxyCreator AbstractApplicationContext AbstractApplicationEventMulticaster AbstractAspectJAdvice AbstractAspectJAdvisorFactory AbstractAspectJAdvisorFactory....
遗留应用程序使用 Spring 谈话改进您的遗留应用程序的代码。 有几个分支显示了从 Legacy Monolitic 应用程序迁移到结构良好(或更好)的应用程序,这些应用程序可以分解为不同的部分。显示从 Spring 2.0.8 升级到 ...
Spring-Validator软件包提供了一种自动生成JavaScript客户端验证代码的简单方法,并提供了SimpleFormController的通用验证器