SpringMVC学习笔记 视图解析器

视图解析器ViewResolver接口负责将处理结果生成View视图。常用的实现类有四种。

1.InternalResourceViewResolver视图解析器

该视图解析器用于应用的内部内部资源的封装与跳转。而对于内部查找规则是将逻辑视图名称配置为前缀与后缀的方式,即前缀 + 视图名称 + 后缀。

该视图解析器将处理器方法返回的模型属性放入request中,并将请求转发到目标URL。

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/pages/">
    <property name="suffix" value=".jsp" />
</bean>
2.BeanNameViewResolver视图解析器

InternalResourceViewResolver视图解析器存在两个问题,使用极其不灵活,只可以完成将内部资源封装完成后跳转。但无法转向外部资源,如外部网页。

对于内部资源定义,也只定义一种格式的资源:对一目录下的同一种类型的文件。

而BeanNameViewReslolver视图解析器,可以在xml配置中,定义多个内部资源或外部资源的view视图,处理器方法中ModelAndView的视图名称映射到视图解析器bean的Id属性值完成资源的封装与跳转

<bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/>
<bean id="baidu" class="org.springframework.web.servlet.view.RedirectView">
    <property name="url" value="https://www.baidu.com"/>
</bean>
<bean id="welcome" class="org.springframework.web.servlet.view.JstlView">
    <property name="url" value="/WEB-INF/welcome.jsp"/>
</bean>
3.XmlViewReslover视图解析器

当需要定义很多视图解析器时,SpringMVC的xml配置难免有些臃肿,使用XmlViewReslover可以将视图资源注册到另一个xml配置里,该xml需要Spring配置文件中的bean约束

<bean class="org.springframework.web.servlet.view.XmlViewResolver" >
    <property name="location" value="classpath:views.xml"/>
</bean>
4.ResourceBundleViewResolver视图解析器

对于veiw视图对象的注册不仅可以在xml中配置,也可以在properties文件中配置,此时应该使用ResourceBoundleViewResolver解析器。

<bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver" >
    <property name="basename" value="views"/>
</bean>

格式要求:

 资源名称.(class)=封装资源的View全限定性类名

资源名称.url=资源路径

示例

jsonView.(class)=org.springframework.web.servlet.view.json.MappingJackson2JsonView
baidu.(class)=org.springframework.web.servlet.view.RedirectView
baidu.url=https://www.baidu.com

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值