zoukankan      html  css  js  c++  java
  • SpringMVC (五)视图解析器

    SpringMVC中的视图解析器默认的是InternalResourceViewResolver类,在第一次写springmvc的案例的时候就是使用的这种

    现在说一下两种配置方式

    首先是 BeanNameViewResolver

    这种配置方式就不需要原来的配置了,直接删掉原来的就可以了

    首先springmvc.xml中要配置,其他的不变

    <!--视图解析器BeanNameViewResolver-->
        <bean id="viewResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver"></bean>
    <!--外部试图对象-->
    <bean id="outViewObject" class="org.springframework.web.servlet.view.RedirectView">
    <property name="url" value="https://www.jd.com"></property>
    </bean>
    <!--内部视图解析器-->
    <bean id="innerViewObject" class="org.springframework.web.servlet.view.JstlView">
    <property name="url" value="/second.jsp"></property>
    </bean>

    在后台的类的方法中

    package demo06ViewResolver;
    
    import org.springframework.web.servlet.ModelAndView;
    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 MyViewResolver extends MultiActionController {
        //外部引用对象
        public String doFirst(HttpServletRequest request, HttpServletResponse response){
            return "outViewObject";
        }
    
        public String doSecond(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
            return "innerViewObject";
        }
    }

    我们也可以将配置文件中外部对象和内部对象放到另一个配置文件中,比如:myView.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    
    
        <!--外部试图对象-->
        <bean id="outViewObject" class="org.springframework.web.servlet.view.RedirectView">
            <property name="url" value="https://www.jd.com"></property>
        </bean>
        <!--内部视图解析器-->
        <bean id="innerViewObject" class="org.springframework.web.servlet.view.JstlView">
            <property name="url" value="/second.jsp"></property>
        </bean>
    </beans>

    那么在原来的配置文件中写什么呢,我把整个配置文件弄过来,我标记的就是需要改动的

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    
        <!--注册处理器-->
        <bean id="myMultiActionController" class="demo06ViewResolver.MyViewResolver" >
            <property name="methodNameResolver" ref="methodNameResolver"></property>
        </bean>
        <!--视图解析器BeanNameViewResolver-->
        <bean id="viewResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver"></bean>
    
        <!--XmlViewResolver-->
        <bean class="org.springframework.web.servlet.view.XmlViewResolver">
            <property name="location" value="classpath:myView.xml" ></property>
        </bean>
    
    
        <!--参数方法名称解析器-->
        <!--<bean id="parameterMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
            <property name="paramName" value="actionName"></property>
        </bean>-->
    
        <!--属性方法名称解析器-->
        <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>
    
        <!--处理器映射器-->
        <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            <!--方式一-->
            <property name="mappings">
                <props>
                    <prop key="/*">myMultiActionController</prop>
                </props>
            </property>
        </bean>
    
    </beans>
  • 相关阅读:
    [Swift通天遁地]四、网络和线程-(4)使用Alamofire实现网络请求
    [Swift通天遁地]四、网络和线程-(3)线程组:使用DispatchGroup(调度组)对线程进行分组管理
    [Swift通天遁地]四、网络和线程-(2)通过BlockOperation实现线程的队列
    [Swift]LeetCode253.会议室 II $ Meeting Rooms II
    [Swift通天遁地]四、网络和线程-(1)线程的锁和解锁
    [Swift]LeetCode252.会议室 $ Meeting Rooms
    [Swift]LeetCode251.展平二维向量 $ Flatten 2D Vector
    [Swift]LeetCode250.计数相同值子树的个数 $ Count Univalue Subtrees
    [Swift]LeetCode249.群组偏移字符串 $ Group Shifted Strings
    [Swift]LeetCode248.对称数 III $ Strobogrammatic Number III
  • 原文地址:https://www.cnblogs.com/my-123/p/8644369.html
Copyright © 2011-2022 走看看