最近使用的Spring2.5中的spring-mvc版本,使用上简单了很多,特别是在要使用MultiActionController的情况下.
spring2.5之前,写一个MultiActionController需要以下步骤:
1. 写一个Controller继承MultiActionController
2. 写相应的action-servlet.xml
2. 写相应的action-servlet.xml
如果使用auto-scan功能的话,上面的bean声明都不用在action-servlet.xml里面写,spring容器会自动扫描到该注释的controller
spring2.5之前,写一个MultiActionController需要以下步骤:
1. 写一个Controller继承MultiActionControllerjava 代码
- public class FooBarController extends MultiActionController {
- public ModelAndView foo(HttpServletRequest request, HttpServletResponse response) {
- .....
- }
- public ModelAndView bar(HttpServletRequest request, HttpServletResponse response) {
- .....
- }
- }
2. 写相应的action-servlet.xml
xml 代码
- <bean id="fooBarController" class="....FooBarController">
- <bean class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver">
- <property name="mappings">
- <value>
- /foofoo.htm=foo
- /barbar.htm=bar
- </value>
- </property>
- </bean>
- </bean>
- <bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
- <property name="mappings">
- <value>
- /foo.htm=fooBarController
- /bar.htm=fooBarController
- </value>
- </property>
- </bean>
Annotation风格的Spring MVC
1. Controller不需要集成任何类,任何POJO都可以通过annotation成为controllerjava 代码
- @Controller
- public class FooBarController {
- //Spriing MVC 2.5定义支持不同的返回值和参数,详细参考文档
- @RequestMaping("/foo.htm")
- public void foo() {
- ...
- }
- @RequestMaping("/bar.htm")
- public void bar() {
- ....
- }
- }
2. 写相应的action-servlet.xml
xml 代码
- <bean id="fooBarController" class="....FooBarController" />
如果使用auto-scan功能的话,上面的bean声明都不用在action-servlet.xml里面写,spring容器会自动扫描到该注释的controller