java控制器返回视图类型_SpringMVC 的 Controller 返回各种视图的处理方式 ...

SpringMVC 的 Controller 可以返回各种各样的视图。比如 JSP, JSON, Velocity, FreeMarker, XML, PDF, Excel, 还有Html字符流 等等。那它们该如何的进行处理的呢?这里就涉及到 各种视图(View)对应的各种视图解析器(ViewResolver). 基本上上面说的每一种视图就对应用一种视图解析器来处理。基本上各种视图解析器大致上可以分为两类:一是基于URL的视图解析器;一种是其它解析器;所谓的UrlBasedViewResolver,就是将返回值作为最终视图的url的一部分,然后和相关配置组合起来,就是最终的视图地址url.

我们看下UrlBasedViewResolver的解析器有哪些:

d5b1d9691eda28299c3b99bfd50316d9.png

1. 返回JSP

返回JSP是最简单的,JSP视图的视图解析器为 InternalResourceViewResolver,也是一个UrlBasedViewResolver解析器。其对应的解析器的配置一般如下:

使用该例子,我们好好理解下什么是 “基于URL” 的视图解析器,比如我们的 Controller 中最后的返回的处理代码为: return "index"; 那么“基于URL” 的视图解析器就会将返回值 “index” 作为最后视图的URL的一部分,然后结合上面的配置  和 ,最后得到最终的URL:

"/WEB-INF/jsp/" + "index" + ".jsp" =="/WEB-INF/jsp/index.jsp"

这就是所谓的 “基于URL” 的视图解析器的工作方式。

2. 返回 HTML 页面

我们知道在Servlet中,我们是可以直接在其中打印输出HTML字符流到最终页面,比如下面的代码来自阿里巴巴的支付宝的接入示例中的代码:

48304ba5e6f9fe08f3fa1abda7d326ab.png

protected void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {

request.setCharacterEncoding("utf-8");

response.setCharacterEncoding("utf-8");//... ...//建立请求

St

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值