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

释放双眼,带上耳机,听听看~!

 

 

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

 

 

 

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

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

 

要说的有处理器中的方法


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
1package cn.dawn.day08ViewResolver;
2
3import org.springframework.web.servlet.ModelAndView;
4import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
5
6import javax.servlet.http.HttpServletRequest;
7import javax.servlet.http.HttpServletResponse;
8
9/**
10 * Created by Dawn on 2018/3/23.
11 */
12public class MyViewController extends MultiActionController{
13
14    /*外部视图解析器*/
15    public String doFirst(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
16
17        /*方法返回值String也可以*/
18        /*此处的就是具体的视图bean的id*/
19        return "OuterViewObject";
20    }
21
22    /*内部视图解析器*/
23    public String doSecond(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
24
25        /*此处的就是具体的视图bean的id*/
26        return "jstlViewObject";
27    }
28}
29

 

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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
1<?xml version="1.0" encoding="UTF-8"?>
2<beans xmlns="http://www.springframework.org/schema/beans"
3       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
4       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">
5
6    <!--配置bean处理器-->
7    <bean id="myViewController" class="cn.dawn.day08ViewResolver.MyViewController">
8        <property name="methodNameResolver" ref="parameterMethodNameResolver"></property>
9    </bean>
10    <!--视图解析器-->
11    <bean class="org.springframework.web.servlet.view.BeanNameViewResolver"></bean>
12    <!--外部视图-->
13    <bean id="OuterViewObject" class="org.springframework.web.servlet.view.RedirectView">
14        <!--可以访问不在自己项目中的网页-->
15        <property name="url" value="https://www.jd.com"></property>
16    </bean>
17
18    <!--内部视图-->
19    <bean id="jstlViewObject" class="org.springframework.web.servlet.view.JstlView">
20        <property name="url" value="/second.jsp"></property>
21    </bean>
22
23    <!--参数方法名称解析器-->
24    <bean id="parameterMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
25        <property name="paramName" value="actionName"></property>
26    </bean>
27
28    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
29        <!--第一种方式-->
30        <property name="urlMap">
31            <map>
32                <entry key="/doFirst">
33                    <value>myViewController</value>
34                </entry>
35            </map>
36        </property>
37    </bean>
38
39</beans>
40

 

此处要说的点有俩个:

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

答案:

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

 

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

 

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

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

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

 

给TA打赏
共{{data.count}}人
人已打赏
安全技术

Netty 实现 WebSocket 聊天功能

2022-1-11 12:36:11

安全活动

中国联通4G用户累计达9903万 不及中移动1/5

2016-12-18 9:08:42

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索