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

时间: 2024-11-05 17:29:01

Spring MVC 中自定义视图 @Component 及 配置 多个视图解析器 Excel视图的相关文章

springmvc-页面中js跳转URL,与spring mvc中返回视图重定向,先后问题

问题描述 页面中js跳转URL,与spring mvc中返回视图重定向,先后问题 页面中有javascript函数: function mySubmitFn() { /*formname是页面form表单的名字,表单提交后由spring mvc处理,返回一个重定向视图'return new ModelAndView(new RedirectView("A.jsp"));'*/ formname.submit(); //代码1 window.location.href='B.jsp';/

Spring MVC中基于自定义Editor的表单数据处理技巧分享_java

面向对象的编程方式极大地方便了程序员在管理数据上所花费的精力.在基于Spring MVC的Web开发过程当中,可以通过对象映射的方式来管理表单提交上来的数据,而不用去一个一个地从request中提取出来.另外,这一功能还支持基本数据类型的映射.例如in.long.float等等.这样我们就能从传统单一的String类型中解脱出来.然而,应用是灵活的.我们对数据的需求是千变万化的.有些时候我们需要对表单的数据进行兼容处理. 例如日期格式的兼容: 中国的日期标注习惯采用yyyy-MM-dd格式,欧美

配置-spring mvc中把jsp放在web-inf报404错

问题描述 spring mvc中把jsp放在web-inf报404错 已经配置号xml文件 解决方案 p:prefix="/WEB-INTF/JSP/" : 配置的是前缀,所以这个目录下面不用加这一段路径了. p:suffix=".jsp":配置的是后缀,返回JSP页面的时候也不需要加后缀了. 详细请了解p:prefix,p:suffix的用法,**如还有问题请用HttpWatch调试,可以看到请求的路径** 解决方案二: 1 单独从配置文件来看..你的JSP文件应

Spring MVC中的MultiActionController用法详解

Spring MVC 中 Controller 的层次实在是多,有些眼花缭乱了 .在单个的基础上,再新加两三个叫做丰富,再多就未必是好事, 反而会令人缩手新闻片脚,无从定夺.多数 Controller 都是只完 成一个任务,不过也有一个像 Struts 的 DispatchAction 的那样 的 Conntroller, org.springframework.web.servlet.mvc.multiaction.MultiActio nController,意即在一个 Controller

Spring MVC JSON自定义类型转换

类型有很多,这里只用日期为例说明. 在Spring MVC中存在两大类的类型转换,一类是Json,一个是Spring的Binder转换. JSON: 使用Json转换时,可以如下使用: [java] view plain copy   public class Test {              private Date createdate;          @JsonSerialize(using = DateYMDHMSJsonSerializer.class)       publ

spring mvc中使用post方式请求返回405

问题描述 spring mvc中使用post方式请求返回405 后台处理方法 @RequestMapping(value=""/doLogin"" method=RequestMethod.POST) public ModelAndView doLogin(HttpSession session){ logger.info(""user login.""); session.setAttribute(""U

js引用-spring mvc 静态资源不能引用 已经配置了不拦截静态资源!!!

问题描述 spring mvc 静态资源不能引用 已经配置了不拦截静态资源!!! 页面中引用 web.xml中配置 springorg.springframework.web.servlet.DispatcherServlet <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/spring-servlet.xml</para

Spring MVC 中的异常处理 (handling exceptions)

在任何应用开发中都需要对异常情况做处理,web应用也是如此.但是在Spring MVC中,所有的Request都是由Servlet处理的,返回的结果都是Response.也就是说,无论请求过程中出现什么异常,返回的都是一个Response,所有异常信息都要转换成Response. 当然,Spring提供了多种异常信息到Response信息的转换方式: 1. 一些特定的Spring异常已经被自动映射特定的http status code 2. 我们可以通过@ResponseStatus注解将一个异

spring MVC中获取request和response

spring MVC中获取request和response: Java代码   HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();                   HttpServletResponse response = ((ServletRequestAttributes) RequestContextHol