熬之滴水穿石: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 ...
随机推荐
- Redis + Jedis + Spring (list操作)
为了简便操作,我使用了StringRedisTemplate.用字符串操作做展示.当然,你可以继续使用RedisTemplate. 闲言少叙,上代码,一目了然: /** * Mar 5, 2013 * ...
- 曾经很长时间不会写的两个SQL语句(group by,having)
1.统计各部门的平均工资,平均资金(要求同时显示出部门名称,部门编号,部门总人数) SQL)),) 部门平均工资,)),) 部门平均资金 FROM EMP E RIGHT JOIN DEPT D ON ...
- AngularJS Directive - 开场小介绍(转)
Directive其实就是让html变得更强大的一种方法.它可以根据需求对dom变形,或注入行为. 觉得它很神秘么,其实一点儿也不神秘,只要开始使用AngularJS了,就一定在使用着Directiv ...
- 1230.2——iOS准备(阅读开发者文档时的笔记)
1.程序启动的过程 .在桌面找到相应的应用的图标 点击图标 .main函数 UIApplication类Every app has exactly one instance of UIAp ...
- C语言链表各类操作详解
链表概述 链表是一种常见的重要的数据结构.它是动态地进行存储分配的一种结构.它可以根据需要开辟内存单元.链表有一个“头指针”变量,以head表示,它存放一个地址.该地址指向一个元素.链表中每一个元素称 ...
- Python学习笔记1(基础语法)
1.Python的文件类型: 源代码:扩展名以py结尾.python写的程序不需要编译成二进制代码,可以直接运行.pyw是Windows下开发图形界面的源文件. 字节代码:扩展名以pyc结尾,是编译过 ...
- (转)Java程序利用main函数中args参数实现参数的传递
Java程序利用main函数中args参数实现参数的传递 1.运行Java程序的同时,可以通过输入参数给main函数中的接收参数数组args[],供程序内部使用!即当你在Java命令行后面带上参数,J ...
- Oracle创建主键自增表
Oracle创建主键自增表 1.创建表 create table Test_Increase( userid number(10) NOT NULL primary k ...
- 基于C#—WPF的扫雷游戏
自学教材:<C#入门经典(第六版)>,1月28日购入,1月29日到2月9日学习了前十六章,由于有C语言基础,在语法阶段学习起来比较轻松,不过在接触到面向对象的时候遇到了一些困难,对于一些概 ...
- 在Cocos2d-X中新建Android项目
Windows下创建Cocos2d-X的Android项目并不复杂,关键是要改几个环境变量 一.进入Cocos2d-X主目录修改“create-android-project.bat” 大家都知道要点 ...