1. 程式人生 > >SpringMVC視圖解析器配置式開發

SpringMVC視圖解析器配置式開發

ack org AR 定義 dna true javax 映射 方式

視圖解析器分為:

            默認方法名解析器

            屬性方法名解析器

            參數方法名解析器 

測試案例:創建類

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=方法名

SpringMVC視圖解析器配置式開發