Spring MVC ContentNegotiation 内容协商

SpingMVC的内容协商支持三种方式:

 

1、使用后缀,如.json.xml后缀。

2、使用Accept

3、通过query参数指定,如 ?format=xml参数,表示要求返回XML格式数据(默认参数名是format,可以修改。)

 

如果同时开启了上面的部分或全部方式,解析顺序是后缀、参数、Accept.

 

	<!-- Make this available across all of Spring MVC -->
	<mvc:annotation-driven content-negotiation-manager="contentNegotiationManager" />
	 
	<!-- Total customization - see below for explanation. -->
	<bean id="contentNegotiationManager"
	class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
	<property name="favorPathExtension" value="true" />
	<property name="favorParameter" value="false" />
	<property name="parameterName" value="format" />
	<property name="ignoreAcceptHeader" value="false"/>
	<property name="useJaf" value="false"/>
	<property name="defaultContentType" value="text/html" />
	 
	<property name="mediaTypes">
	<map>
	<entry key="json" value="application/json" />
	<entry key="xml" value="application/xml" />
	</map>
	</property>
	</bean>

 

 

favorPathExtension

参数表示是否开启后缀,默认true。(使用形如/account/a.json/account/a.xml的方式)

favorParameter

参数表示是否开启request参数识别,默认false。(使用形如/account/a?format=json/account/?format=xml的方式)

parameterName

参数表示使用参数的名字,默认format,如果配置为mediaType,则请求格式变为/account/a?mediaType=json

ignoreAcceptHeader

表示是否关闭accept头识别,默认false,即默认开启accept头识别。

 

defaultContentType

表示服务器默认的MediaType类型。

 SpringMVC 4.1 新特性(二)内容协商视图

http://blog.csdn.net/w372426096/article/details/78429158

 Spring Web MVC框架(九) XML和JSON视图与内容协商

https://www.jianshu.com/p/b6d2ea9ffd9d

猜你喜欢

转载自huangqiqing123.iteye.com/blog/2412587