100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Spring MVC 中自定义视图 @Component 及 配置 多个视图解析器 Excel视图

Spring MVC 中自定义视图 @Component 及 配置 多个视图解析器 Excel视图

时间:2020-05-24 17:47:17

相关推荐

Spring MVC 中自定义视图 @Component 及 配置 多个视图解析器 Excel视图

首先我们建立一个自己的View实现View接口。要注意在类上面加上@Component的注解,因为看BeanNameViewResolver的源码知道,是直接从ioc容器里面拿的根据名字拿的视图,所以我们得把我们自己写的视图放到容器里面。

HelloView.java

package com.hust.springmvc.views;import java.util.Date;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.ponent;import org.springframework.web.servlet.View;@Componentpublic class HelloView implements View {@Overridepublic String getContentType() {return "text/html";}@Overridepublic void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response)throws Exception {response.getWriter().print("hello view, time:" + new Date());;}}

然后在spring配置文件中配置

<!-- 配置视图解析器 BeanNameViewResolver 解析器: 使用视图的名字来解析视图 --><!-- 通过order 属性来定义视图解析器的优先级, order 值越小优先级越高--><bean class="org.springframework.web.servlet.view.BeanNameViewResolver"><property name="order" value="100"></property></bean>

注意这个order,这个是值越小优先级就越高,我们要把常用的放在后面考虑,不常用的得放在前面,所以这个优先级100已经是很高了,因为看下InternalResourceViewResolver的源码就知道,在它的父类里有order属性。

这个肯定是优先级最低。

这样我们在SpringMVCTest中@RequestMapping配置一下testView,再去index.jsp设置一个跳转。

然后启动服务器,就可以看到效果啦。

顺便说一下如果我们想实现其他视图在render里面渲染即可,比方说Excel视图。我们打开View。

可以看到其实已经有了AbstractExcelView点进去

我们去实现这个buildExcelDocument接口就行。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。