熬之滴水穿石: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开发的春天
Spring框架,现在来说,我们并不陌生了.但对于其理论知识还是比较薄弱的,被问到一个名词,并不能很好地去解释,只是三言两语,结果还是没有说到位.从本篇博客开始,将对Spring框架做一系列总结,点滴 ...
- Spring入门(J2EE的春天)
Spring的两大核心概念(IOC/DI AOP) IOC(控制反转):将原来有我们来完成的实例化过程,交给容器来完成.将组件对 象的控制权1 ...
- 熬之滴水穿石:JSP--HTML中的JAVA代码(6)
39--JSTL 在JSP编码中需考虑的一种方法,因为这种方法可以 ...
- 熬之滴水穿石:JAVA的世界(2)
15--JAVA中类型 03年之前写Delphi程序写习惯了,发现在JAVA这个随处充满面向对象的概念中实际上是没有全局变量这么一个概念的 ...
- 熬之滴水穿石:Delphi曾经的利器(2)
6--Delphi的源头TObject 用过delphi的朋友都知道,在Delphi里编代码,所有的类都会继承一个TObject的对象.TObject可以 ...
- 熬之滴水穿石:一切从windows编程开始(3)
3--对于windows的任务处理模型的认识 要想真正的掌握windows编程,实际上还是需要从winodws的任务处理架构开始的. 在windows操作系统中有许多程序在运行,它提供了一个多任务可运 ...
- 熬之滴水穿石:Servlet--Web万物之源(1)
25--认识Web容器 03年转到JAVA开发,开始编写基于企业内网的WEB应用.那时候对于JAVA这门语言还是感觉不难,对于WEB应用的开 ...
- 熬之滴水穿石:Servlet--Web万物之源(8)
12--过滤器 不得不说过滤器了,在Web安全中,过滤器也是一个重要的环节.其实过滤器本质就是一个Servlet,当然你可以认为它本身就 ...
- J2EE中使用Spring AOP框架和EJB组件
快速发展的开发人员社区.对各种后端技术(包括JMS.JTA.JDO.Hibernate.iBATIS等等)的支持,以及(更为重要的)非侵入性的轻量级IoC容器和内置的AOP运行时,这些因素使得Spri ...
- J2EE中使用Spring AOP框架和EJB组件(1)
J2EE中使用Spring AOP框架和EJB组件(1) [@more@]本文介绍了一种把J2EE应用程序中的EJB转换为Spring托管组件的方法,以及转换之后可以采用的强大技术.它还给出了几个实际 ...
最新文章
- Sublime如何设置背景透明
- UML类图详解_泛化关系
- Linux CentOS下配置SVN+SVN勾子
- Spark学习笔记(8)---Spark Streaming学习笔记
- rust挖油机怎么整_挖掘机发动机进气管断裂该怎么办?
- sh(Spring+Spring mvc+hibernate)——BaseDao.java
- 程序员薪资怎么论高级还是初级_和程序员一样高薪,却过着清闲生活,测试员什么人都可做吗?...
- 让ProgressPar动起来
- chrome frame节点 取_Chrome Frame插件解决IE浏览器兼容问题
- 闪电html编辑器,闪电pdf编辑器
- 软件测评:如何做软件项目验收测试报告 ?
- Unity 粒子特效相对位置和大小的调整
- android dagger2 单例,Dagger2进阶-单例
- 一道求极值的三角函数题
- Linux 时间校正
- 谷歌浏览器自带网页截图快捷键
- 格力美的,谁代表中国制造的未来
- unity烘焙室外黑斑
- 【OBS】OBS预览
- C语言高频率--typedef和const用法详解