Spring MVC控制器
AbstractController
当使用AbstractController作为你的控制器基类时(一般不推荐这样做,因为有许多预定义的控制器你可以选择),
MultiActionController Spring提供一个多动作控制器,使用它你可以将几个动作合并在一个控制器里,这样可以把功能组合在一起。
MethodNameResolver根据收到的请求解析方法名。有三种解析器可以供你选择,当然你可以自己实现解析器。
ParameterMethodNameResolver - 解析请求参数,并将它作为方法名(http://www.sf.net/index.view?testParam=testIt的请求就会调用testIt(HttpServletRequest,HttpServletResponse))。使用paramName配置参数可以调整所检查的参数
InternalPathMethodNameResolver - 从路径中获取文件名作为方法名(http://www.sf.net/testing.view的请求会调用testing(HttpServletRequest, HttpServletResponse)方法)
如果使用MultiActionController,还要进行以下的额外定义
<bean id="paramResolver" class="org....mvc.multiaction.ParameterMethodNameResolver"> <property name="paramName"><value>method</value></property> </bean>
<bean id="paramMultiController" class="org....mvc.multiaction.MultiActionController"> <property name="methodNameResolver">
<ref bean="paramResolver"/></property> </bean>
以上的参数配置法是现在通用的方法,而web2.0更喜欢用第二种方法,用URL中的参数进行匹配。
CommandControllers你可以使用这个命令控制器来创建你自己的命令控制器,它能够将请求参数绑定到你指定的数据对象。这个类并不提供任何表单功能,但是它提供验证功能,并且让你在控制器中定义如何处理包含请求参数的数据对象
SimpleFormController - 这是一个更具体的FormCotnroller,它能用相应的数据对象帮助你创建表单。SimpleFormController让你指定一个命令对象,表单视图名,当表单提交成功后显示给用户的视图名等等
à被指过于复杂,但是却是很好用的东西!
Spring MVC视图与视图解析
Spring提供了视图解析器,这使得你在浏览器显示模型数据时不需要指定具体的视图技术。Spring允许你使用Java Server Page,Velocity模版和XSLT视图。
ViewResolvers
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass">
<value>org.springframework.web.servlet.view.JstlView</value>
</property>
<property name="prefix">
<value>/WEB-INF/jsp/</value>
</property>
<property name="suffix">
<value></value>
</property>
</bean>
<!-- Spring mvc 通用错误解析 -->
<bean id="exceptionResolver"
class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key=“java.lang.Exception(可以是任何自定义异常)”>friendlyError.jsp</prop>
</props>
</property>
</bean>
Spring WebApplicationContext
要初始化Spring容器,就是按照Spring定义文件进行初始化,将类进行代理,实例化……
<!-- spring 资源读取 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/configure/applicationContext-tomcat.xml
</param-value>
</context-param>
<!--Spring Context loader-->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
至此,web应用程序已经支持了Spring,在Spring 定义文件中所定义的类已经运行在了WEB环境下,并且受Spring管理,获得了如IOC,AOP等优点。
AbstractController
当使用AbstractController作为你的控制器基类时(一般不推荐这样做,因为有许多预定义的控制器你可以选择),
MultiActionController Spring提供一个多动作控制器,使用它你可以将几个动作合并在一个控制器里,这样可以把功能组合在一起。
MethodNameResolver根据收到的请求解析方法名。有三种解析器可以供你选择,当然你可以自己实现解析器。
ParameterMethodNameResolver - 解析请求参数,并将它作为方法名(http://www.sf.net/index.view?testParam=testIt的请求就会调用testIt(HttpServletRequest,HttpServletResponse))。使用paramName配置参数可以调整所检查的参数
InternalPathMethodNameResolver - 从路径中获取文件名作为方法名(http://www.sf.net/testing.view的请求会调用testing(HttpServletRequest, HttpServletResponse)方法)
如果使用MultiActionController,还要进行以下的额外定义
<bean id="paramResolver" class="org....mvc.multiaction.ParameterMethodNameResolver"> <property name="paramName"><value>method</value></property> </bean>
<bean id="paramMultiController" class="org....mvc.multiaction.MultiActionController"> <property name="methodNameResolver">
<ref bean="paramResolver"/></property> </bean>
以上的参数配置法是现在通用的方法,而web2.0更喜欢用第二种方法,用URL中的参数进行匹配。
CommandControllers你可以使用这个命令控制器来创建你自己的命令控制器,它能够将请求参数绑定到你指定的数据对象。这个类并不提供任何表单功能,但是它提供验证功能,并且让你在控制器中定义如何处理包含请求参数的数据对象
SimpleFormController - 这是一个更具体的FormCotnroller,它能用相应的数据对象帮助你创建表单。SimpleFormController让你指定一个命令对象,表单视图名,当表单提交成功后显示给用户的视图名等等
à被指过于复杂,但是却是很好用的东西!
Spring MVC视图与视图解析
Spring提供了视图解析器,这使得你在浏览器显示模型数据时不需要指定具体的视图技术。Spring允许你使用Java Server Page,Velocity模版和XSLT视图。
ViewResolvers
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass">
<value>org.springframework.web.servlet.view.JstlView</value>
</property>
<property name="prefix">
<value>/WEB-INF/jsp/</value>
</property>
<property name="suffix">
<value></value>
</property>
</bean>
<!-- Spring mvc 通用错误解析 -->
<bean id="exceptionResolver"
class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key=“java.lang.Exception(可以是任何自定义异常)”>friendlyError.jsp</prop>
</props>
</property>
</bean>
Spring WebApplicationContext
要初始化Spring容器,就是按照Spring定义文件进行初始化,将类进行代理,实例化……
<!-- spring 资源读取 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/configure/applicationContext-tomcat.xml
</param-value>
</context-param>
<!--Spring Context loader-->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
至此,web应用程序已经支持了Spring,在Spring 定义文件中所定义的类已经运行在了WEB环境下,并且受Spring管理,获得了如IOC,AOP等优点。