熬之滴水穿石:Spring--精简的J2EE(5)
47--Spring的MVC
在Spring的框架中也存在MVC这样的模式,在Spring下有2个这样的控制器一个叫Controller,另一个叫SimpleFormController。Controller主要负责显示数据,SimpleFormController更倾向于处理表单的增删检查操作。通过handleRequest(request, response)方法。该方法返回一个ModelAndView类,这是Spring特定的MVC类,ModeAndView这个类包含着model和view的内容,view是要显示的位置逻辑,mode则是一个对象的名称。当然这些内容也可以包含有多个相关的更多内容。一般来说,我们使用SimpleFormController就可以满足我们开发的需求。使用SimpleFormController时需注意一些方法在GET请求时调用,而有一些方法则是POST请求调用。在Servlet的单元中曾说过幂等性,Get操作一般用于编辑,Post则用于保存和更新。Spring MVC框架与之前在JSP单元中说起的框架Struts不同之处,就是有两个控制器来处理页面,如果用Struts时,通常是一个Action来完
成删除,编辑,保存,及列出数据表中的记录。控制器通常包含了execute()方法。不管请求是Get还是Post都会用这个方法去执行,这种方式的优点和缺点一样的明显:就是根本不在乎是哪种请求是Get和Post并不重要。在Spring中MVC则要求不要用一个控制器来做任何事情,当然你如果不想为每个界面设置一个控制器一样,也可以用MultiActionController可以为每个显示定义一个独立的方法。看Spring在MVC这块考虑得多么周全。
SimpleFormController设计主要用于与域对象进行交互,动态的绑定请求参数到对象上。与Struts相比,Spring更为简洁,SimpleFormController便是如此,提供可配置的表单和成功页面视图,方便复写的onSubmit()方法。如果出现验证错误,它会自动重复提交表单视图,如果的合法的提交,则生成成功视图。SimpleFormController只是Spring众多控制器中的一个,但是它确实有过人之处,也是使用最为多的一个。它是FormContrller的一个具体的实现,提供了可配置的表单(form)和成功视图(view)。当验证出错时,它会自动重现表单视图,验证通过时,会显示成功视图。这个类提供了很多在显示表单和提交表单的生命周期中可以复写的方法。这是Spring MVC框架的一个独到之处。其它框架一般只提供一种方法进行复写,你无法更多的控制出现情况时到底发生了什么。当然,使用Spring MVC时,并没有强求实现它的生命周期方法。在你需要它时,它可以为你提供了一种选择。实际上,你只需要复写两个方法:onSubmit()和formBackingObject()。onSubmit()处理表单post请求,formBackingObject()为请求提供一个对象,它封装了HTML表单的字段值。对于获取现有的记录,此方法是一个非常方便的位置,它也是初始化空对象(例如,显示空白表单)的好地方。理解SimpleFormController的生命周期也是一个非常重要的事情,理解它能够更好的理解在Spring下的MVC模式。
(未完待续.....)
熬之滴水穿石:Spring--精简的J2EE(5)的更多相关文章
- 熬之滴水穿石:Spring--精简的J2EE(6)
48--曾用过的View 在Spring MVC架构中View实际上是有多种选择的.JSP是首选的view,实际上在J2E ...
- 熬之滴水穿石:JSP--HTML中的JAVA代码(6)
39--JSTL 在JSP编码中需考虑的一种方法,因为这种方法可以 ...
- spring入门教程——笔记
Spring学习笔记(1)----简单的实例 --------------------------------- 首先需要准备Spring包,可从官方网站上下载. 下载解压后,必须的两个包是s ...
- 不错的Spring学习笔记(转)
Spring学习笔记(1)----简单的实例 --------------------------------- 首先需要准备Spring包,可从官方网站上下载. 下载解压后,必须的两个包是s ...
- Spring框架IOC容器和AOP解析
主要分析点: 一.Spring开源框架的简介 二.Spring下IOC容器和DI(依赖注入Dependency injection) 三.Spring下面向切面编程(AOP)和事务管理配置 一.S ...
- Spring MVC 学习总结(七)——FreeMarker模板引擎与动态页面静态化
模板引擎可以让程序实现界面与数据分离,业务代码与逻辑代码的分离,这就提升了开发效率,良好的设计也使得代码复用变得更加容易.一般的模板引擎都包含一个模板解析器和一套标记语言,好的模板引擎有简洁的语法规则 ...
- 13.SpringMVC和Spring集成(一) && 14.SpringMVC和Spring集成(二)
1.概念 Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,Spring致力于J2EE应用的各层的解决方案,Spring是企业应用开发的“一站式”选择,并贯 ...
- Spring实战1:Spring初探
主要内容 Spring的使命--简化Java开发 Spring容器 Spring的整体架构 Spring的新发展 现在的Java程序员赶上了好时候.在将近20年的历史中,Java的发展历经沉浮.尽管有 ...
- 什么是Spring?Spring是什么?
Spring概述: Spring是一个开源框架,是为了解决企业应用程序开发复杂性而开发的. 从简单性.可測试性和松耦合的角度而言,不论什么java应用都能够从Spring中受益. 简而言之,Sprin ...
随机推荐
- 二叉排序树的创建删除中序输出&&平衡树
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #inclu ...
- HashMap的使用方法及注意事项
99.Map(映射):Map 的keySet()方法会返回 key 的集合,因为 Map 的键是不能重复的,因此 keySet()方法的返回类型是 Set:而 Map 的值是可以重复的,因此 valu ...
- 浅谈Android系统开发中LOG的使用
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6581828 在程序开发过程中,LOG是广泛使用 ...
- ORA-00119: invalid specification for system parameter LOCAL_LISTENER
重启oracle是提示错误ORA-00119: invalid specification for system parameter LOCAL_LISTENER. 解决方法: 命令查看错误信息:oe ...
- mvc 5 的过滤器和webapi 过滤器 对应实现的action过滤器区别
asp.net webapi Action过滤器实现这个: #region 程序集 System.Web.Http, Version=5.2.3.0, Culture=neutral, Publi ...
- MySql命令——函数
1.拼接字段——Concata() 把多个串连接起来形成一个较长的串. select concat(value,'(',id,')') from test; 2.去掉空格 RTrim() 去掉右边的空 ...
- javascript sort排序
var arr = [5,32,28,66,2,15,3]; arr.sort(function(a1,a2){ return a1-a2; //a2-a1 输入倒序 }); console.log( ...
- OpenCV——人脸检测
OpenCV支持的目标检测的方法: 利用样本的Haar特征进行的分类器训练,得到的级联boosted分类器(Cascade Classification) 1.加载级联分类器 CascadeClass ...
- bzoj 2049 Cave 洞穴勘测(LCT)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud 动态树入门题,不需要维护任何信息. 我用的是splay,下标实现的lct. #in ...
- (原)Ubuntu16 中安装torch版的cudnn
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5668471.html 参考网址: https://devtalk.nvidia.com/default ...