视图解析器分为:
默认方法名解析器
属性方法名解析器
参数方法名解析器
测试案例:创建类
package cn.happy.day03MultiAction; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.multiaction.MultiActionController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; //默认方法名解析器 public class MyMultiActionController extends MultiActionController { //自定义两个方法 public String doFirst(HttpServletRequest request,HttpServletResponse response){ return "doFirst";//访问jsp名称 } public String doSecond(HttpServletRequest request,HttpServletResponse response){ return "doSecond"; } }
方式一:默认方法名解析器
<!--视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/"/> <property name="suffix" value=".jsp"/> </bean> <!--方式一:使用默认方法名解析器 处理器映射器--> <!--处理器--> <bean id="myMultiActionController" class="cn.happy.day03MultiAction.MyMultiActionController"> </bean> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <map> <!--访问url 例:/方法名.do访问--> <!--控制器--> <entry key="/*.do" value="myMultiActionController"/> </map> </property> </bean>
访问方式应为:Http://location:8080/方法名.do
方式二:属性方法名解析器
<!--视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/"/> <property name="suffix" value=".jsp"/> </bean> <!--属性方法名解析器--> <bean id="multiAction" class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver"> <property name="mappings"> <props> <!--访问URL 实体类方法名--> <prop key="/first">doFirst</prop> <prop key="/second">doSecond</prop> </props> </property> </bean> <!--处理器映射器--> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="urlMap"> <map> <!--控制器--> <entry key="/*" value="multiActionController"></entry> </map> </property> </bean> <!--处理器--> <bean id="multiActionController" class="cn.happy.day03MultiAction.MyMultiActionController"> <!--绑定解析器--> <property name="methodNameResolver" ref="multiAction"/> </bean>
访问方式应为:Http://location:8080/first or second
方式二:参数方法名解析器
<!--视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/"/> <property name="suffix" value=".jsp"/> </bean> <!--方式三:参数方法名解析器--> <bean id="methodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver"> <!--参数名称:自定义--> <property name="paramName" value="actionName"/> </bean> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <map> <!--固定访问地址--> <entry key="/hello.do" value="multiActionController"/> </map> </property> </bean> <!--处理器--> <bean id="multiActionController" class="cn.happy.day03MultiAction.MyMultiActionController"> <!--绑定解析器--> <property name="methodNameResolver" ref="methodNameResolver"/> </bean>
访问方式应为:Http://location:8080/hello.do?actionName=方法名