Я использовал весну 3.2.3. как вы видите, он устарел mediaTypes, который мы использовали ранее, для настройки обработки json, представляя ContentNegotiationManager. Звучит здорово. Но меня это раздражает.Весенний запрос, используя список как расширение
У меня есть конфигурации XML, как это:
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="contentNegotiationManager">
<bean class="org.springframework.web.accept.ContentNegotiationManager">
<constructor-arg>
<bean class="org.springframework.web.accept.PathExtensionContentNegotiationStrategy">
<constructor-arg>
<map>
<entry key="json" value="application/json" />
<entry key="list" value="application/json" />
</map>
</constructor-arg>
</bean>
</constructor-arg>
</bean>
</property>
<property name="defaultViews">
<list>
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
</list>
</property>
</bean>
Это кажется правильно. Эм, я так думаю. Но когда я отправить запрос на URL, как /product.list, который соответствовал метод:
@RequestMapping(value="/product.list", consumes={"application/json"}, produces= {"application/json"})
@ResponseBody
public Object list(@RequestBody ListProductReq listProductReq) throws BusinessException
этот метод только принять запрос JSON, все работает отлично, за исключением URL с расширением списка. После долгого следа я обнаружил, что независимо от того, что я настроил в xml, так же, как и то, что я упомянул выше, будет org.springframework.web.accept.ServletPathExtensionContentNegotiationStrategy
и org.springframework.web.accept.HeaderContentNegotiationStrategy
, я не знаю, откуда он пришел, потому что нигде больше не могу установить эти вещи. Отладочная информация, как показано на рисунке ниже.
отладочная информация была захвачена из класса ContentNegotiationManager
.
Интересно, если кто-то столкнулся с этой проблемой, любая помощь будет оценена. Благодарю.
Привет, Bhaskara, у меня есть библиотеки Jackson в моем пути к классам, и все, что имеет другое расширение, отлично работает, например 'product.update',' product.add' и т. Д. Но расширение списка было отображено на 'text/plain', это основная проблема. И я не знаю, почему. – Royshun