• java培训技术自定义视图介绍


    自定义视图

    • 自定义视图(需要加入SpringMVC,那么,一定需要实现框架的接口)
    • 若希望使用 Excel 展示数据列表,仅需要扩展 SpringMVC 提供的 AbstractExcelView 或 AbstractJExcelView 即可。
    • 实现 buildExcelDocument() 方法,在方法中使用模型数据对象构建 Excel 文档就可以了。
    • AbstractExcelView 基于 POI API,而 AbstractJExcelView 是基于 JExcelAPI 的。
    • 视图对象需要配置 IOC 容器中的一个 Bean,使用 BeanNameViewResolver 作为视图解析器即可
    • 若希望直接在浏览器中直接下载 Excel 文档,则可以设置响应头 Content-Disposition 的值为 attachment;filename=xxx.xls

    1 实验代码

    • 页面链接
    • 控制器方法

    @RequestMapping(“/testView“)

    public String testView(){

    System.out.println(“testView…”);

    return “helloView”; //与视图Bean 对象的id一致

    }

    • 自定义视图

    package com.atguigu.springmvc.view;

    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 model, HttpServletRequest request,

    HttpServletResponse response) throws Exception {

    response.getWriter().println(“HelloView – time = ” + new Date());

    }

    }

    • 声明视图解析器

    视图解析器:按照bean的名称查找视图 –>

    BeanNameViewResolver“>

     5)InternalResourceViewResolver默认的优先级:private int order = Integer.MAX_VALUE;

    2 源码参考

    public class BeanNameViewResolver extends WebApplicationObjectSupport

    implements ViewResolver, Ordered {

    private int order = Integer.MAX_VALUE;  // default: same as non-Ordered

    public void setOrder(int order) {

    this.order = order;

    }

    @Override

    public int getOrder() {

    return order;

    }

    @Override

    public View resolveViewName(String viewName, Locale locale) throws BeansException {

    ApplicationContext context = getApplicationContext();

    if (!context.containsBean(viewName)) {

    //说明视图组件必须增加到SpringIOC 容器中,所以需要@Component

    // Allow for ViewResolver chaining.

    return null;

    }

    return context.getBean(viewName, View.class);

    }

    }

    想要了解跟多关于java培训课程内容欢迎关注尚硅谷java培训,尚硅谷除了这些技术文章外还有免费的高质量java培训课程视频供广大学员下载学习。

     

  • 相关阅读:
    【JVM】运行时数据区(内存区域划分)详解
    使用键盘控制Franka机械臂运动
    轻量通讯协议 --- MQTT
    丢掉乱七八糟的软件,留下这4个,让你告别索然无味
    后端系统开发注意事项
    c# 读取xml到dataset中
    Qt元对象系统
    HT for Web 风格属性手册教程 | 图扑软件
    ELFK——ELK结合filebeat日志分析系统(2)
    C++ -- IO流
  • 原文地址:https://blog.csdn.net/zjjcchina/article/details/127101387