视图解析器分为:
默认方法名解析器
属性方法名解析器
参数方法名解析器
测试案例:创建类
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=方法名