Spring MVC MultiActionController example
2015-08-25 06:42
561 查看
In Spring MVC application,
With
3.
The
Now, the URL will map to the method name in the following pattern :
MultiActionControlleris used to group related actions into a single controller, the method handler have to follow below signature :
public (ModelAndView | Map | String | void) actionName( HttpServletRequest, HttpServletResponse [,HttpSession] [,CommandObject]);
1. MultiActionController
See aMultiActionControllerexample.
package com.mkyong.common.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.multiaction.MultiActionController; public class CustomerController extends MultiActionController{ public ModelAndView add(HttpServletRequest request, HttpServletResponse response) throws Exception { return new ModelAndView("CustomerPage", "msg","add() method"); } public ModelAndView delete(HttpServletRequest request, HttpServletResponse response) throws Exception { return new ModelAndView("CustomerPage", "msg","delete() method"); } public ModelAndView update(HttpServletRequest request, HttpServletResponse response) throws Exception { return new ModelAndView("CustomerPage", "msg","update() method"); } public ModelAndView list(HttpServletRequest request, HttpServletResponse response) throws Exception { return new ModelAndView("CustomerPage", "msg","list() method"); } }
With
ControllerClassNameHandlerMappingconfigured.
<beans ...> <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" /> <bean class="com.mkyong.common.controller.CustomerController" /> </beans>
2. Mapping Examples
Now, the reuqested URL will map to the method name in the following patterns :CustomerController –> /customer/* /customer/add.htm –> add() /customer/delete.htm –> delete() /customer/update.htm –> update() /customer/list.htm –> list()
3. InternalPathMethodNameResolver
The InternalPathMethodNameResolveris the default
MultiActionControllerimplementation to map URL to method name. But, you are still allow to add
prefixor
suffixto the method name :
<beans ...> <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" /> <bean class="com.mkyong.common.controller.CustomerController"> <property name="methodNameResolver"> <bean class="org.springframework.web.servlet.mvc.multiaction.InternalPathMethodNameResolver"> <property name="prefix" value="test" /> <property name="suffix" value="Customer" /> </bean> </property> </bean> </beans>
Now, the URL will map to the method name in the following pattern :
CustomerController –> /customer/* /customer/add.htm –> testaddCustomer() /customer/delete.htm –> testdeleteCustomer() /customer/update.htm –> testupdateCustomer() /customer/list.htm –> testlistCustomer()
相关文章推荐
- jdbc如何传递java collection参数到procedure存储过程方法参数(db colleciton)
- JAVA IO流
- 【JavaMail开发总结】注意事项
- import 简化Spring 配置文件
- java字符与对应Ascii码互转
- Spring技术内幕——深入解析Spring架构与设计原理(一)IOC实现原理
- eclipse新建maven web项目流程
- SSH整合配置文件之spring篇
- eclipse引入js总是报错原因
- Spring管理 hibernate 事务配置的五种方式
- spring命名空间
- spring 引用其他bean
- thinkinginjava学习笔记01_导论
- java三元运算符详解
- spring 配置bean的方法及依赖注入发方式
- [Java Concurrency in Practice]第六章 任务执行
- Java泛型总结(转)
- Java 类加载机制 ClassLoder
- Java 类加载机制 ClassLoder
- Java 类加载机制 ClassLoder