SpringMVC (四)MultiActionController
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>
访问的形式是