SimpleFormController往上繼承自AbstractFormController,而又繼承自AbstractController,
這是開始實作Controller介面的基底類別,再往上的兩個類別各司WebApplicationContext與Http response的資源。
對於簡單的表單需求,我們通常透過繼承SimpleFormController,並覆寫其onSumit()方法來完成表單功能,
而實際上真正的表單處理流程定義在AbstractFormController
這邊說明三個我覺得比較常用且不複雜的方法,在繼承了SimpleFormController(AbstractFormController)之後,
您可以覆寫這些方法:formBackingObject()、referenceData()、onBindAndValidate()。
當瀏覽器使用GET方法向Action發出請求時,會調用formBackingObject()方法,您可以在這個方法中預先設定好表單物件,在表單網頁中就會顯示表單的預設值,例如:
java 代码
- protected Object formBackingObject(HttpServletRequest request) throws Exception {
- LoginForm loginForm = new LoginForm();
- loginForm.setUsername("guest");
- loginForm.setPassword("guest");
-
- return loginForm;
- }
在使用者送出資料之後,如果sessionForm為false,則會再呼叫formBackingObject()方法取得表單物件,若sessionForm設定為true,則會試著有session中找尋表單物件。
您可以在referenceData()中定義一些JSP頁面可以參考到的參數,例如:
java 代码
- protected Map referenceData(HttpServletRequest request) throws Exception {
- Map ref = new HashMap();
- ref.put("defalutUser", "guest");
-
- return ref;
- }
onBindAndValidate()就如其名所示,當表單物件的資料已經綁定,並且還沒開始驗證之前,您可以試著在這個方法中作一些預處理,例如進行字母大小寫轉換,附帶一些額外的資訊等等:
java 代码
- protected void onBindAndValidate(HttpServletRequest request, Object command, BindException errors) throws Exception {
- }
url请求来到时,这样处理:
a) 请求传递给一个controller对象
b) 调用formBackingObject()方法,创建一个command对象的实例。
c) 调用initBinder(),注册需要的类型转换器
d) 调用showForm()方法,返回准备呈现给用户的视图
e) 调用referenceData()方法,准备给用户显示相关的数据。如用户登录需要选择的年度信息
f) 返回formView指定的视图
表单请求来到时,这样处理:
a) 调用formBackingObject()方法,创建一个command对象的实例。
b) 将请求传来的参数写入command对象
c) 如果设置为要求验证,则调用validator类进行数据验证
d) 调用onBindAndValidate()方法,该方法允许自定义数据绑定和校验处理
e) 调用onSubmit()方法,进行业务逻辑处理
分享到:
相关推荐
springMVC3学习(六)--SimpleFormController(源码) 文章地址:http://blog.csdn.net/itmyhome1990/article/details/25988733
NULL 博文链接:https://mgz-99-163-com.iteye.com/blog/690417
NULL 博文链接:https://huihai.iteye.com/blog/1967697
Spring MVC例子 有SimpleFormController ,MultiationController等控制器的应用介绍.算是比较完整的例子大家看看吧。
Spring的web框架是围绕...你可以通过实现这个接口来生成自己的控制器(也可以称之为处理器),但是从Spring提供的一系列控制器继承会更省事,比如AbstractController、AbstractCommandController和SimpleFormController
自己写的spring表单绑定的小例子,分别使用SimpleFormController,MultiActionController,spring的form tag和validator。 还在MultiActionController里面实现了表单的绑定
3.2 版本是包含SimpleFormController的最后一个版本,这将允许更轻松的迁移路径。 现在可以选择使用SimpleFormController虽然已弃用),或者切换到@Controller 。 JDK从1.4更新到1.6,代码保持不变。为...
PropertiesMethodNameResolver ParameterizableViewController AbstractCommandController AbstractFormController SimpleFormController AbstractWizardFormController ...
去几年,REST逐渐成为影响Web框架、Web协议与Web应用设计的重要概念...更进一步,如果你手头有一个Spring MVC应用,使用了控制类继承(SimpleFormController等),你可能还意识不到现在的Spring MVC对REST广泛的支持。
Spring-Validator软件包提供了一种自动生成JavaScript客户端验证代码的简单方法,并提供了SimpleFormController的通用验证器
加密货币 一个基于Spring MVC的网络平台,用于加密货币交易和转移 框架:Spring mvc 5.2.3.RELEASE。... 用户表单提交:SimpleFormController。 IDE:面向Java开发人员的Eclipse Enterprise 2020-09(4.17.0)。
All Classes AbstractAdvisorAutoProxyCreator AbstractApplicationContext AbstractApplicationEventMulticaster AbstractAspectJAdvice AbstractAspectJAdvisorFactory AbstractAspectJAdvisorFactory....
10.5.3 表单控制器(SimpleFormController) 10.5.4 多动作控制器(MultiActionController) 10.6 Spring的视图映射机制 10.6.1 分发器(DispatcherServlet) 10.6.2 视图映射 10.7 Spring的模型(Model) 10.7.1 ...
10.5.3 表单控制器(SimpleFormController) 10.5.4 多动作控制器(MultiActionController) 10.6 Spring的视图映射机制 10.6.1 分发器(DispatcherServlet) 10.6.2 视图映射 10.7 Spring的模型(Model) 10.7.1 ...
10.5.3 表单控制器(SimpleFormController) 10.5.4 多动作控制器(MultiActionController) 10.6 Spring的视图映射机制 10.6.1 分发器(DispatcherServlet) 10.6.2 视图映射 10.7 Spring的模型(Model) 10.7.1 ...
10.5.3 表单控制器(SimpleFormController) 10.5.4 多动作控制器(MultiActionController) 10.6 Spring的视图映射机制 10.6.1 分发器(DispatcherServlet) 10.6.2 视图映射 10.7 Spring的模型(Model) 10.7.1 ...