Spring 从4.1升级到4.3 出现 Invalid property 'favorParameter'

今天在修改前人代码时,遇到一个需要 mapping /{var1}/{var2}/{var3} ,/{var1}/{var2} 的需求,在mapping中将value= “/{var1}/{var2}/{var3}” 更改为 {“/{var1}/{var2}/{var3}”,“/{var1}/{var2}”}后,修改 @PathVariable 增加required参数后运行提示不支持,查阅文档发现,该参数时spring 自4.3.3 版本添加,故将应用的spring版本升级到4.3.20;

再次编译运行报   Invalid property 'favorParameter'  错误;

springmvc配置如下

<!-- 根据客户端的不同的请求决定不同的view进行响应, 如 /blog/1.json返回json格式数据 /blog/1.xml返回xml格式数据 
		/blog.do返回jsp -->

	<bean
		class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
		
        <!-- 用于开启 /userinfo/123?format=json 的支持 -->
		<property name="favorParameter" value="false" />
		<!-- 设置为true以忽略对Accept Header的支持 -->
		<property name="ignoreAcceptHeader" value="true" />
		<!-- 在没有扩展名时即: "/user/1" 时的默认展现形式 -->
		<property name="defaultContentType" value="text/html" />
		<!-- 扩展名至mimeType的映射,即 /user.json => application/json -->
		<!-- spring3.1的配置模式 -->
		<property name="mediaTypes">
			<map>
				<entry key="json" value="application/json" />
				<entry key="xml" value="application/xml" />
			</map>
		</property>

		<property name="viewResolvers">
			<list>
				<bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
				<bean
					class="org.springframework.web.servlet.view.InternalResourceViewResolver">
					<property name="viewClass"
						value="org.springframework.web.servlet.view.JstlView" />
					<property name="prefix" value="/WEB-INF/pages" />
					<property name="suffix" value=".jsp"></property>
				</bean>

			</list>
		</property>
		<property name="defaultViews">
			<list>
				<!-- fastjson方式 -->
				<bean class="com.tydic.framework.base.view.FrameworkJacksonJsonView">
				</bean>
			</list>
		</property>
	</bean>
ContentNegotiatingViewResolver 中的 favorParameter、ignoreAcceptHeader、mediaTypes等在4.1版时即为即将删除;在4.3版本中已无这些属性;通过参考 此文 和 文章2 了解到 这些属性已移至 ContentNegotiationManagerFactoryBean 这个类中;故而修改配置文件如下完成修改:
<!-- 根据客户端的不同的请求决定不同的view进行响应, 如 /blog/1.json返回json格式数据 /blog/1.xml返回xml格式数据 
		/blog.do返回jsp -->
	<bean id="cnManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
		<!-- 用于开启 /userinfo/123?format=json 的支持 -->
		<property name="favorParameter" value="false" />
		<!-- 设置为true以忽略对Accept Header的支持 -->
		<property name="ignoreAcceptHeader" value="true" />
		<!-- 在没有扩展名时即: "/user/1" 时的默认展现形式 -->
		<property name="defaultContentType" value="text/html" />
		<!-- 扩展名至mimeType的映射,即 /user.json => application/json -->
		<!-- spring3.1的配置模式 -->
		<property name="mediaTypes">
			<map>
				<entry key="json" value="application/json" />
				<entry key="xml" value="application/xml" />
			</map>
		</property>

	</bean>

	<bean
		class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
		<property name="contentNegotiationManager" ref="cnManager"/>


		<property name="viewResolvers">
			<list>
				<bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
				<bean
					class="org.springframework.web.servlet.view.InternalResourceViewResolver">
					<property name="viewClass"
						value="org.springframework.web.servlet.view.JstlView" />
					<property name="prefix" value="/WEB-INF/pages" />
					<property name="suffix" value=".jsp"></property>
				</bean>

			</list>
		</property>
		<property name="defaultViews">
			<list>
				<!-- fastjson方式 -->
				<bean class="com.tydic.framework.base.view.FrameworkJacksonJsonView">
				</bean>
			</list>
		</property>
	</bean>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值