MultiActionController 一个处理器中有多个方法方案
第一种:默认方法名称解析器 (InternalPathMethodNameResolver)
案例:写一个类让他继承MultiActionController类
在这个类里面自定义两个方法
package demo04MultiActionContrller; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; import org.springframework.web.servlet.mvc.multiaction.MultiActionController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Created by mycom on 2018/3/18. */ public class MyMultiActionController extends MultiActionController { public String doFirst(HttpServletRequest request,HttpServletResponse response){ ModelAndView mv=new ModelAndView(); mv.setViewName("first"); return "first"; } public ModelAndView doSecond(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { ModelAndView me=new ModelAndView(); me.setViewName("second"); return me; } }
在配置文件中
<!--注册处理器-->
<bean id="myMultiActionController" class="demo04MultiActionContrller.MyMultiActionController" >
<property name="methodNameResolver" ref="methodNameResolver"></property>
</bean>
<!--默认解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<!--方式一-->
<property name="mappings">
<props>
<prop key="/*">myMultiActionController</prop>
</props>
</property>
</bean>
在两个页面中
<%-- Created by IntelliJ IDEA. User: mycom Date: 2018/3/24 Time: 9:53 To change this template use File | Settings | File Templates. --%> <%@page pageEncoding="utf-8" language="java" isELIgnored="false" %> <html> <head> <title>Title</title> </head> <body> 我是first <img src="/static/images/gen6.jpg"/> </body> </html>
<%-- Created by IntelliJ IDEA. User: mycom Date: 2018/3/24 Time: 9:54 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> 我是second </body> </html>
访问页面的时候直接和后台方法的名称一样,就可以
第二种:属性方法名称解析器
在配置文件中
<!--属性方法名称解析器-->
<bean id="methodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver">
<property name="mappings">
<props>
<prop key="/first">doFirst</prop>
<prop key="/second">doSecond</prop>
</props>
</property>
</bean>
并且将处理器中

在页面访问时,可以直接访问上面key的值就可以
第三种:参数方法名称解析器
同样是在springmvc.xml中修改,
<bean id="parameterMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver"> <property name="paramName" value="actionName"></property> </bean>
访问的形式是
