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.springframework.stereotype.Component;
import org.springframework.web.servlet.View;

@Component
public class HelloView implements View {

    @Override
    public String getContentType() {
        return "text/html";
    }

    @Override
    public 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接口就行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值