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

简介:    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------       视图解析器,这个很熟悉啊,之间就用过,就是可以简写/和.jsp的InternalResourceViewResolver 我这次书写的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这个家伙,准备看下一篇博客吧,小伙子

 

目录
相关文章
|
1月前
|
负载均衡 算法 Java
Spring Cloud全解析:负载均衡算法
本文介绍了负载均衡的两种方式:集中式负载均衡和进程内负载均衡,以及常见的负载均衡算法,包括轮询、随机、源地址哈希、加权轮询、加权随机和最小连接数等方法,帮助读者更好地理解和应用负载均衡技术。
|
16天前
|
Java 对象存储 开发者
解析Spring Cloud与Netflix OSS:微服务架构中的左右手如何协同作战
Spring Cloud与Netflix OSS不仅是现代微服务架构中不可或缺的一部分,它们还通过不断的技术创新和社区贡献推动了整个行业的发展。无论是对于初创企业还是大型组织来说,掌握并合理运用这两套工具,都能极大地提升软件系统的灵活性、可扩展性以及整体性能。随着云计算和容器化技术的进一步普及,Spring Cloud与Netflix OSS将继续引领微服务技术的发展潮流。
31 0
|
27天前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
223 37
|
3月前
|
设计模式 监控 Java
解析Spring Cloud中的断路器模式原理
解析Spring Cloud中的断路器模式原理
|
3月前
|
安全 Java 数据安全/隐私保护
解析Spring Security中的权限控制策略
解析Spring Security中的权限控制策略
|
5天前
|
Java Spring 容器
Spring IOC、AOP与事务管理底层原理及源码解析
Spring框架以其强大的控制反转(IOC)和面向切面编程(AOP)功能,成为Java企业级开发中的首选框架。本文将深入探讨Spring IOC和AOP的底层原理,并通过源码解析来揭示其实现机制。同时,我们还将探讨Spring事务管理的核心原理,并给出相应的源码示例。
37 9
|
1月前
|
XML 监控 Java
Spring Cloud全解析:熔断之Hystrix简介
Hystrix 是由 Netflix 开源的延迟和容错库,用于提高分布式系统的弹性。它通过断路器模式、资源隔离、服务降级及限流等机制防止服务雪崩。Hystrix 基于命令模式,通过 `HystrixCommand` 封装对外部依赖的调用逻辑。断路器能在依赖服务故障时快速返回备选响应,避免长时间等待。此外,Hystrix 还提供了监控功能,能够实时监控运行指标和配置变化。依赖管理方面,可通过 `@EnableHystrix` 启用 Hystrix 支持,并配置全局或局部的降级策略。结合 Feign 可实现客户端的服务降级。
109 23
|
13天前
|
存储 缓存 Java
在Spring Boot中使用缓存的技术解析
通过利用Spring Boot中的缓存支持,开发者可以轻松地实现高效和可扩展的缓存策略,进而提升应用的性能和用户体验。Spring Boot的声明式缓存抽象和对多种缓存技术的支持,使得集成和使用缓存变得前所未有的简单。无论是在开发新应用还是优化现有应用,合理地使用缓存都是提高性能的有效手段。
15 1
|
2月前
|
缓存 Java 开发者
Spring高手之路22——AOP切面类的封装与解析
本篇文章深入解析了Spring AOP的工作机制,包括Advisor和TargetSource的构建与作用。通过详尽的源码分析和实际案例,帮助开发者全面理解AOP的核心技术,提升在实际项目中的应用能力。
29 0
Spring高手之路22——AOP切面类的封装与解析
|
2月前
|
Java 微服务 Spring
Spring Cloud全解析:配置中心之解决configserver单点问题
但是如果该configserver挂掉了,那就无法获取最新的配置了,微服务就出现了configserver的单点问题,那么如何避免configserver单点呢?

推荐镜像

更多