视图和内容协商

如果想要在控制其中使用无扩展名的URL,例如welcome而不是带扩展名的URL,如welcome.html或者welcome.jsp,

这时希望设计一个策略,能够根据扩展名返回正确的内容和类型。

解决方案

当web应用接受一个请求的时候,请求包含一系列属性(果然请求不纯洁啊),让处理框架能够确定返回给请求方的正确内容和类型。

这种属性有:

请求中提供的URL扩展名

HTTP Accept头标(头标是什么鬼)

Spirng MVC通过ContentNegotiatingViewResolver解析器支持头标的检查,使可以根据URL文件扩展名或者HTTPAccept头标至作出视图委派。

(又是解析器,刚刚好像也有个解析器)

内容协商视图解析器

依靠Spring表达式语言(SpEL)指定优先顺序。

HTTP Accept头标包含类似:Accept:text/html或Accept:application/pdf这样的值,加入请求URL中不存在扩展名,这些值帮助解析器确定请求者预期的媒体类型。

时间: 2024-10-06 16:01:59

视图和内容协商的相关文章

Django Book

The Django Book 2.0--中文版 第一章:介绍Django 本书所讲的是Django:一个可以使Web开发工作愉快并且高效的Web开发框架. 使用Django,使你能够以最小的代价构建和维护高质量的Web应用. 从好的方面来看,Web 开发激动人心且富于创造性:从另一面来看,它却是份繁琐而令人生厌的工作. 通过减少重复的代码,Django 使你能够专注于 Web 应用上有 趣的关键性的东西. 为了达到这个目标,Django 提供了通用Web开发模式的高度抽象,提供了频繁进行的编程

SpringMVC 的 Controller 返回各种视图的处理方式

SpringMVC 的 Controller 可以返回各种各样的视图.比如 JSP, JSON, Velocity, FreeMarker, XML, PDF, Excel, 还有Html字符流 等等.那它们该如何的进行处理的呢?这里就涉及到 各种视图(View)对应的各种视图解析器(ViewResolver). 基本上上面说的每一种视图就对应用一种视图解析器来处理.基本上各种视图解析器大致上可以分为两类:一是基于URL的视图解析器:一种是其它解析器:所谓的UrlBasedViewResolve

Spring MVC 学习总结(四)——视图与综合示例

一.表单标签库 1.1.简介 从Spring2.0起就提供了一组全面的自动数据绑定标签来处理表单元素.生成的标签兼容HTML 4.01与XHTML 1.0.表单标签库中包含了可以用在JSP页面中渲染HTML元素的标签.表单标记库包含在spring-webmvc.jar中,库的描述符称为spring-form.tld,为了使用这些标签必须在jsp页面开头处声明这个tablib指令. <%@ taglib prefix="form" uri="http://www.spri

Spring MVC之视图解析器

Spring MVC提供的视图解析器使用ViewResolver进行视图解析,实现浏览器中渲染模型.ViewResolver能够解析JSP.Velocity模板.FreeMarker模板和XSLT等多种视图. Spring处理视图最重要的两个接口是ViewResolver和View.ViewResolver接口在视图名称和真正的视图之间提供映射关系: 而View接口则处理请求将真正的视图呈现给用户. 1.ViewResolver视图解析器 在Spring MVC控制器中,所有的请求处理方法(Ac

Spring 4 官方文档学习(十一)Web MVC 框架之resolving views 解析视图

接前面的Spring 4 官方文档学习(十一)Web MVC 框架,那篇太长,故另起一篇. 针对web应用的所有的MVC框架,都会提供一种呈现views的方式.Spring提供了view resolvers,可以让你在浏览器中render model,而不必绑定到某种特定的view技术上.开箱即用,例如,Spring可以让你使用JSPs.Velocity目标和XSLT views.See Chapter 23, View technologies for a discussion of how

SpringMVC——视图和视图解析器

请求处理方法执行完成后,最终返回一个 ModelAndView对象.对于那些返回 String,View 或 ModeMap 等类型的处理方法,Spring MVC 也会在内部将它们装配成一个ModelAndView 对象,它包含了逻辑名和模型对象的视图 Spring MVC 借助视图解析器(ViewResolver)得到最终的视图对象(View),最终的视图可以是 JSP ,也可能是Excel.JFreeChart 等各种表现形式的视图 对于最终究竟采取何种视图对象对模型数据进行渲染,处理器并

spring ContentNegotiationManagerFactoryBean 内容协商

一.什么是内容协商 简单点说,就是同一资源,可以有多种表现形式,比如xml.json等,具体使用哪种表现形式,是可以协商的. 这是RESTfull的一个重要特性,Spring Web MVC也支持这个功能. 1.Spring MVC REST是如何决定采用何种方式(视图)来展示内容呢? 一:根据Http请求的header中的Accept属性的值来判读,比如: Accept: application/xml                将返回xml格式数据 Accept: application

Oracle 10g通过创建物化视图实现不同数据库间表级别的数据同步

摘自:http://blog.csdn.net/javaee_sunny/article/details/53439980 目录(?)[-] Oracle 10g 物化视图语法如下 实例演示 主要步骤 在A节点创建原表和物化视图日志 在B节点创建连接A节点的远程链接 在B节点处创建目标表和与目标表名称相同的物化视图 在B节点处刷新物化视图 升级采用存储过程定时任务JOB方式定时刷新物化视图 进一步优化 文章更新记录 参考文章 Oracle 10g 物化视图语法如下: create materia

Android零基础入门第61节:滚动视图ScrollView

原文:Android零基础入门第61节:滚动视图ScrollView 前面几期学习了ProgressBar系列组件.ViewAnimator系列组件.Picker系列组件和时间日期系列组件,接下来几期继续来学习常见的其他组件. 一.ScrollView概述 从前面的学习有的同学可能已经发现,当拥有很多内容时屏幕显示不完,显示不全的部分完全看不见.但是在实际项目里面,很多内容都不止一个屏幕宽度或高度,那怎么办呢?那就需要本节学习的ScrollView来完成. 在默认情况下,ScrollView只是