Spring mvc 中MultiActionController的三种methodNameResolver

来源:互联网 发布:java 编译流程 编辑:程序博客网 时间:2024/06/05 23:52

三种methodNameResolver分别为:

org.springframework.web.servlet.mvc.multiaction.InternalPathMethodNameResolver

org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver

org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver

配置方法为:

<?xml version="1.0" encoding="UTF-8"?>  <beans xmlns="http://www.springframework.org/schema/beans"      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"      xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"      xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"      xmlns:util="http://www.springframework.org/schema/util"      xsi:schemaLocation="              http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd              http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd              http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd              http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd              http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd              http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd"      default-lazy-init="true">            <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">      <property name="urlMap">            <map>                <entry key="/abc/*"><ref bean="empFormController"></ref></entry>            </map>        </property>             </bean>      <bean id="empFormController" class="test.EmpMultiController">          <property name="methodNameResolver" ref="cResolver">          </property>      </bean>      <!-- 定义三种解析策略 -->      <bean id="aResolver" class="org.springframework.web.servlet.mvc.multiaction.InternalPathMethodNameResolver" />      <bean id="bResolver" class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver">           <property name="mappings">                <value> /abc/test.do=doTest</value>            </property>        </bean>      <bean id="cResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">          <property name="paramName" value="func" />      </bean>            <bean id="startController" class="test.StartController" />      <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">          <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>          <property name="prefix" value="/WEB-INF/jsp/" />          <property name="suffix" value=".jsp" />      </bean>  </beans>     

控制器代码:

    package test;            import java.util.Date;            import javax.servlet.http.HttpServletRequest;      import javax.servlet.http.HttpServletResponse;            import org.springframework.web.bind.ServletRequestDataBinder;      import org.springframework.web.servlet.ModelAndView;      import org.springframework.web.servlet.mvc.multiaction.MultiActionController;            public class EmpMultiController extends MultiActionController{                    public ModelAndView to_add(HttpServletRequest request, HttpServletResponse response){              ModelAndView mav = new ModelAndView("add_emp");              mav.addObject("deptList", new String[]{"sales","manage"});              return mav;          }                    public ModelAndView doTest(HttpServletRequest request, HttpServletResponse response){              System.out.println("doTest");              return null;          }                    public ModelAndView add_emp(HttpServletRequest request, HttpServletResponse response,                    Emp emp){              System.out.println(emp);              return new ModelAndView("success");          }                @Override          protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {              binder.registerCustomEditor(Date.class, new MyEditor());          }                }  
当methodNameResolver分别设置为

aResolver访问方式为:

http://10.2.17.15:7080/SpringMVC/spring/abc/doTest

bResolver访问方式为:
http://10.2.17.15:7080/SpringMVC/spring/abc/test.do

cResolver访问方式为:

http://10.2.17.15:7080/SpringMVC/spring/abc/aaa?func=doTest

(aaa部分是我随便加的,没有也可以,只要保证?func=doTest即可)




0 0
原创粉丝点击