熬之滴水穿石: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 ...
随机推荐
- 2个2D向量计算交点的夹角和补角
2维向量如何计算与某一个交点之间的夹角,假设A,B是向量,C是他们共同连接的一个点计算出A-C-B形成的角度 我们先了解几个简单的计算: 2D向量的乘积计算 (A.x * B.x + A.y * ...
- 动态规划之最长公共子序列LCS(Longest Common Subsequence)
一.问题描述 由于最长公共子序列LCS是一个比较经典的问题,主要是采用动态规划(DP)算法去实现,理论方面的讲述也非常详尽,本文重点是程序的实现部分,所以理论方面的解释主要看这篇博客:http://b ...
- [Redux] Extracting Action Creators
We will create an anction creator to manage the dispatch actions, to keep code maintainable and self ...
- Xcode5和6上新建工程如何本地化启动页面
建议阅读本篇文章前先具备iOS本地化的基本知识,Google中搜索“iOS本地化”,有成片的教程~~ 最近有个app需要支持英语.简体中文.繁体中文,由于启动页面上有文字,所以也不得不做下本地化处理. ...
- .net中用到的一些方法
//文件操作string fullDirPath = Utils.GetMapPath(string.Format("/aspx/{0}/", buildPath)); Direc ...
- MySql命令——命令行客户机的分隔符
delimiter // create procedure productpricint() begin select avg(price) as priceaverage from product; ...
- 省市联动JQ封装比较简洁调用的方法
前言 因为省市联动的需求在每个项目几乎存在,所以本人也对此在web页面通过封装比较简洁的JQ方法循环判断调用调用后台获取数据再绑定到Select表单上.如果对代码有什么疑问或者更好办法可以在评论区留言 ...
- (转)android ndk 给结构体赋值的方法
转自:http://www.cnweblog.com/fly2700/archive/2012/03/21/320083.html 1,java 代码 结构体定义 public class Media ...
- 使用LAMP创建基于wordpress的个从博客网站
参考: http://blog.csdn.net/ck_boss/article/details/27866117 一.mysql配置 1.安装mysql yum install mysql-serv ...
- php读取和保存base64编码的图片内容
<?php header('Content-type:text/html;charset=utf-8'); //读取图片文件,转换成base64编码格式 $image_file = './429 ...