SSM-SpringMVC-12:SpringMVC中BeanNameViewResolver这种视图解析器

------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------

视图解析器,这个很熟悉啊,之间就用过,就是可以简写/和.jsp的InternalResourceViewResolver

我这次书写的BeanNameViewResolver就是另外一种视图解析器,他有优点,也有缺点,优点可以访问项目外部的网页,并且灵活性很好,缺点有,最后写完案例你就明白了

要说的有处理器中的方法

package cn.dawn.day08ViewResolver;

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 Dawn on 2018/3/23.
 */
public class MyViewController extends MultiActionController{

    /*外部视图解析器*/
    public String doFirst(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {

        /*方法返回值String也可以*/
        /*此处的就是具体的视图bean的id*/
        return "OuterViewObject";
    }

    /*内部视图解析器*/
    public String doSecond(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {

        /*此处的就是具体的视图bean的id*/
        return "jstlViewObject";
    }
}

再来是自己的xml文件,他需要配三个块,一是我说的BeanNameViewResolver这个视图解析器,还有就是俩个视图,我做了一个外部一个内部的demo

<?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处理器-->
    <bean id="myViewController" class="cn.dawn.day08ViewResolver.MyViewController">
        <property name="methodNameResolver" ref="parameterMethodNameResolver"></property>
    </bean>
    <!--视图解析器-->
    <bean class="org.springframework.web.servlet.view.BeanNameViewResolver"></bean>
    <!--外部视图-->
    <bean id="OuterViewObject" class="org.springframework.web.servlet.view.RedirectView">
        <!--可以访问不在自己项目中的网页-->
        <property name="url" value="https://www.jd.com"></property>
    </bean>

    <!--内部视图-->
    <bean id="jstlViewObject" class="org.springframework.web.servlet.view.JstlView">
        <property name="url" value="/second.jsp"></property>
    </bean>

    <!--参数方法名称解析器-->
    <bean id="parameterMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
        <property name="paramName" value="actionName"></property>
    </bean>

    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <!--第一种方式-->
        <property name="urlMap">
            <map>
                <entry key="/doFirst">
                    <value>myViewController</value>
                </entry>
            </map>
        </property>
    </bean>

</beans>

此处要说的点有俩个:

问题一:我xml中的BeanNameViewResolver视图解析器里面什么值都没有,为什么配,有意义吗?

答案:

看到这张图了吧,虽说视图解析器有默认值,但是不是BeanNameViewResolver,要想使用就必须自己配置一道,可以说就近原则,也可以说进行改值,反正这块的视图解析器就变为了BeanNameViewResolver

问题二:你刚才说的缺点呢?我没看出来

答案:每使用一道视图,就得手工配置一道,麻烦啊,最重要的一点,如果视图多了,你这个核心的xml配置文件还怎么看?又乱又长。。。。

所以针对后面这个缺点,进行了优化,需要用到XmlViewResolver这个家伙,准备看下一篇博客吧,小伙子

原文地址:https://www.cnblogs.com/DawnCHENXI/p/8641060.html

时间: 2024-10-08 04:56:53

SSM-SpringMVC-12:SpringMVC中BeanNameViewResolver这种视图解析器的相关文章

7.SpringMVC 配置式开发-ModelAndView和视图解析器

ModelAndView 1.Model(模型) 1.model的本质就是HashMap,向模型中添加数据,就是往HashMap中去添加数据 2.HashMap 是一个单向查找数组,单向链表数组 3.LinkedHashMap,本质是一个HashMap,但其将Entry进行了扩展,变成双向的了 2.View(视图) ModelAndView 内部通过 setViewName() 指定视图名称 这个视图名称对应一个视图对象,这个视图对象会被封装在ModelAndView中,传给视图解析器来解析 视

BeanNameViewResolver自定义视图解析器

RedirectView:定义外部资源视图对象 JstlView:定义内部资源视图对象 使用自定义视图解析器 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

SpringMVC 视图和视图解析器&amp;表单标签

视图和视图解析器 请求处理方法执行完成后,最终返回一个 ModelAndView 对象.对于那些返回 String,View 或 ModeMap 等类型的处理方法,Spring MVC 也会在内部将它们装配成一个ModelAndView 对象,它包含了逻辑名和模型对象的视图 Spring MVC 借助视图解析器(ViewResolver)得到最终的视图对象(View),最终的视图可以是 JSP ,也可能是Excel.JFreeChart 等各种表现形式的视图 视图 视图的作用是渲染模型数据,将模

SpringMVC——视图和视图解析器

请求处理方法执行完成后,最终返回一个 ModelAndView对象.对于那些返回 String,View 或 ModeMap 等类型的处理方法,Spring MVC 也会在内部将它们装配成一个ModelAndView 对象,它包含了逻辑名和模型对象的视图 Spring MVC 借助视图解析器(ViewResolver)得到最终的视图对象(View),最终的视图可以是 JSP ,也可能是Excel.JFreeChart 等各种表现形式的视图 对于最终究竟采取何种视图对象对模型数据进行渲染,处理器并

springMVC初探视图解析器——InternalResourceViewResolver

springmvc在处理器方法中通常返回的是逻辑视图,如何定位到真正的页面,就需要通过视图解析器. springmvc里提供了多个视图解析器,InternalResourceViewResolver就是其中之一: 最常用的视图解析器:InternalResourceViewResolver 当处理器返回“index”时,InternalResourceViewResolver解析器会自动添加前缀和后缀:/WEB-INF/jsp/index.jsp 注意:这里的order表示视图解析的优先级,数目

学习SpringMVC——说说视图解析器

各位前排的,后排的,都不要走,咱趁热打铁,就这一股劲我们今天来说说spring mvc的视图解析器(不要抢,都有位子~~~) 相信大家在昨天那篇如何获取请求参数篇中都已经领略到了spring mvc注解的魅力和套路了.搭上@RequestMapping的便车,我们可以去到我们想去的地方(方法)去,借助@RequestParam.@PathVariable等我们可以得到请求中想要的参数值,最终还能够通过神奇的“return SUCCESS”到达我们的目的地.今天主要就来说说在达到目的地的路上,我们

springMVC配置jsp/html视图解析器

目录 1.maven项目引入freemark相关jar包 2.freemarker.properties 3.配置视图解析器 参考自springMVC配置jsp.html多视图解析器,本文稍作补充 1.maven项目引入freemark相关jar包 freemaker是以个模板引擎,可以根据提供的数据和创建好的模板,去自动的创建html静态页面.所以在返回html视图时可以用这个引擎结合数据生成html静态页面. <dependency> <groupId>org.springfr

[刘阳Java]_InternalResourceViewResolver视图解析器_第6讲

SpringMVC在处理器方法中通常返回的是逻辑视图,如何定位到真正的页面,就需要通过视图解析器 InternalResourceViewResolver是SpringMVC中比较常用视图解析器. 网上有一篇文章写得不错,我们也推荐大家去看看,当然要谢谢这篇博客提供的内容,转发地址:http://www.cnblogs.com/liruiloveparents/p/5054605.html 1. InternalResourceViewResolver的配置文件代码如下 <?xml versio

[转载]开发 Spring 自定义视图和视图解析器

原文出处 http://www.ibm.com/developerworks/cn/java/j-lo-springview/ 概述 Spring 3.0 默认包含了多种视图和视图解析器,比如 JSP.Velocity 视图等,但在某些情况下,我们需要开发自定义的视图及其解析器,以便显示特殊文件格式的视图,我们也可以使用自定义视图及解析器,针对特定的视图做相应的处理.本文将通过一个示例来介绍如何开发 Spring 自定义视图和视图解析器,来显示后缀名为 SWF 的视图,并提供一个简单的注册机制,