伤元气:Spring mvc控制器
来源:百度文库 编辑:偶看新闻 时间:2024/04/28 23:34:15
Spring mvc控制器 可能有些朋友在学习了一段时间的spring之后还是对spring感觉很陌生,spring提供的功能很多,要学习的面很广,如果想一下全部接触到的话可能不会取得很好的效果。个人观点是:由点及面,各个击破。下面把个人spring mvc控制器部分的学习总结如下,希望对大家有所帮助。(不常用的本文不作详细介绍)
简介:spring内建了一个请求驱动的web mvc框架,以一个servlet分发器为中心,将web请求分发到各个不同的处理器进行处理(这点和struts很相似)。这个servlet就是spring提供的DispatcherServlet,它必须在web.xml里配置。当然web.xml里可以配置多个DispatcherServlet,每个DispatcherServlet都会加载和自己相关的web应用上下文(即和应用相关的xml文件)。
例如:
代码:……
jpet
org.springframework.web.servlet.DispatcherServlet
2
jpet
*.do
……以上的配置表示所有“.do”结尾的请求都交DispatcherServlet来预处理(分发)。在web-inf下,spring默认查找jpet-servlet.xml作为程序应用上下文。
控制器:
Spring将web控制器视为普通的java对象,因此它可以在web上下文里配置,这就意味着他能够和整个spring容器无缝整合,并可以受益spring带来的一切优势。
Controller接口:Spring默认的核心控制器被抽象为一个简单的控制器接口Controller,该接口仅定义了一种方法handleRequest(request,response),直接实现了该接口的控制器具有最简单的功能,比如一个页面不需要表单的时候,他就可以实现给接口具有了控制器的功能来处理一些业务。
AbstractController抽象控制器基类:
该类定制了一些基本的web控制器功能,spring还提供了一些web控制器的基类,这些类都继承与该类。
AbstractCommandController命令控制器抽象基类:
该类提供了一些基本的命令模板方法,允许直接继承并使用它。Spring还提供了一些很好的命令控制器基类(Command Controller),他们都继承于AbstractController。
AbstractFormController抽象的表单控制器:
该类有功能非常强大也是最常用的两个子类:普通表单控制器SimpleFormController和向导式表单控制器AbstractWizardFormController。我们分别简介如下:
普通表单控制器:
顾名思义他用来处理表单控制器流程,控制器要继承SimpleFormController,其xml配置和普通bean配置相同,在此就不详说了。我们主要来看看他的流程。
你可以选择继承的几个常用方法有:
formBackingObject(request); 一般用来预创建表单实例,在页面加载之前会被调用。
onBindAndValidate(request,command,erros);进行手工的数据邦定和验证,是否调用该方法还和其他配置有关(后面说明)。
referenceDate(request);向模型中放置一些数据,用以表单视图的显示。
onSubmit(request,response,command,errors);表单的递交处理。
控制器还有一些属性需要设置,这些属性如果不在xml里配置的话,可以在程序中设置:
setSessionForm(boolean flag):
默认情况下,每次请求都会创建一个表单对象。如果需要通过session保存或复用已经创建的表单,需要将sessionForm的属性设为true;因此在首次请求时表单对象会被创建并置于session中,当表单正确提交后,会从session中删除该表单对象。
setValidateOnBinding(boolean flag):
该属性指定了是否在表单控制器进行数据邦定的时候就进行验证,如果要调用上面提到的onBindAndValidate方法,那么将其属性设为false。
setCommadName(String name):
指定特定的表单名,它可在视图中通过spring特有的标签进行引用,默认的表单名“command”。
setFormView(String view):
当以get方式递交时,表单控制器会依据view指定的值进行转发。
向导式表单控制器:
它的主要功能是允许多个表单共用一个表单对象,与普通表单的区别如下:
A:表单对象的作用域必须是session,即sessionForm必为true;
B:表单数据邦定的时不会进行数据验证,即validateOnBinding比为false;
C:可在多个表单视图间进行切换,所以验证不是针对某个表单对象,而是特定的表单页面。
D:具有明确的工作流概念模版方法,如结束处理:processFinish()。取消请求:processCancel()。验证特定页面:validatePage()。
说明:
向导所需要的多个视图需要通过setPages(String[] pages),以数组的形式指定。各视图的导向标示用数组下标来表示,提供了专门的处理方法getTargetPage()。
表单的正式递交是通过特殊的url请求参数驱动的,比如processFinish()方法由“aa.do?_finish=true”触发。与此相关的页面工作流相关的字符常量还有:_cancel,_page。
结束
简介:spring内建了一个请求驱动的web mvc框架,以一个servlet分发器为中心,将web请求分发到各个不同的处理器进行处理(这点和struts很相似)。这个servlet就是spring提供的DispatcherServlet,它必须在web.xml里配置。当然web.xml里可以配置多个DispatcherServlet,每个DispatcherServlet都会加载和自己相关的web应用上下文(即和应用相关的xml文件)。
例如:
代码:……
……以上的配置表示所有“.do”结尾的请求都交DispatcherServlet来预处理(分发)。在web-inf下,spring默认查找jpet-servlet.xml作为程序应用上下文。
控制器:
Spring将web控制器视为普通的java对象,因此它可以在web上下文里配置,这就意味着他能够和整个spring容器无缝整合,并可以受益spring带来的一切优势。
Controller接口:Spring默认的核心控制器被抽象为一个简单的控制器接口Controller,该接口仅定义了一种方法handleRequest(request,response),直接实现了该接口的控制器具有最简单的功能,比如一个页面不需要表单的时候,他就可以实现给接口具有了控制器的功能来处理一些业务。
AbstractController抽象控制器基类:
该类定制了一些基本的web控制器功能,spring还提供了一些web控制器的基类,这些类都继承与该类。
AbstractCommandController命令控制器抽象基类:
该类提供了一些基本的命令模板方法,允许直接继承并使用它。Spring还提供了一些很好的命令控制器基类(Command Controller),他们都继承于AbstractController。
AbstractFormController抽象的表单控制器:
该类有功能非常强大也是最常用的两个子类:普通表单控制器SimpleFormController和向导式表单控制器AbstractWizardFormController。我们分别简介如下:
普通表单控制器:
顾名思义他用来处理表单控制器流程,控制器要继承SimpleFormController,其xml配置和普通bean配置相同,在此就不详说了。我们主要来看看他的流程。
你可以选择继承的几个常用方法有:
formBackingObject(request); 一般用来预创建表单实例,在页面加载之前会被调用。
onBindAndValidate(request,command,erros);进行手工的数据邦定和验证,是否调用该方法还和其他配置有关(后面说明)。
referenceDate(request);向模型中放置一些数据,用以表单视图的显示。
onSubmit(request,response,command,errors);表单的递交处理。
控制器还有一些属性需要设置,这些属性如果不在xml里配置的话,可以在程序中设置:
setSessionForm(boolean flag):
默认情况下,每次请求都会创建一个表单对象。如果需要通过session保存或复用已经创建的表单,需要将sessionForm的属性设为true;因此在首次请求时表单对象会被创建并置于session中,当表单正确提交后,会从session中删除该表单对象。
setValidateOnBinding(boolean flag):
该属性指定了是否在表单控制器进行数据邦定的时候就进行验证,如果要调用上面提到的onBindAndValidate方法,那么将其属性设为false。
setCommadName(String name):
指定特定的表单名,它可在视图中通过spring特有的标签进行引用,默认的表单名“command”。
setFormView(String view):
当以get方式递交时,表单控制器会依据view指定的值进行转发。
向导式表单控制器:
它的主要功能是允许多个表单共用一个表单对象,与普通表单的区别如下:
A:表单对象的作用域必须是session,即sessionForm必为true;
B:表单数据邦定的时不会进行数据验证,即validateOnBinding比为false;
C:可在多个表单视图间进行切换,所以验证不是针对某个表单对象,而是特定的表单页面。
D:具有明确的工作流概念模版方法,如结束处理:processFinish()。取消请求:processCancel()。验证特定页面:validatePage()。
说明:
向导所需要的多个视图需要通过setPages(String[] pages),以数组的形式指定。各视图的导向标示用数组下标来表示,提供了专门的处理方法getTargetPage()。
表单的正式递交是通过特殊的url请求参数驱动的,比如processFinish()方法由“aa.do?_finish=true”触发。与此相关的页面工作流相关的字符常量还有:_cancel,_page。
结束
在spring的mvc框架中,如何在画面绑定link方式的参数传递(不采用hidden)
什么是MVC?
MVC是什么?
MVC是什么意思?
什么是mvc架构
MVC是啥子东东?
php如何实现mvc
什么是mvc三层构架
请问mvc模型
spring是什么意思
pierian spring
spring breeze
Eniaying Spring
Spring优缺点
Happy spring festival
hot spring是什么意思
Happy spring festival
Spring Festival是什么节日
The Spring Festival
spring lasts long
the spring festivai 是什么意思
the spring festival 是什么意思
the spring festival
MY SPRING FESTIVER