1
這是我的我的Spring MVC控制器Spring MVC的POST @RequestBody不綁定到JSON字符串在HTTP請求
@RequestMapping(value="/createNewGame", method=RequestMethod.POST)
public ModelAndView createNewGame(@RequestParam(value="phoneNumber") String param,@RequestBody final SampleDTO sampleDTO) {
Map model2 = new HashMap();
model2.put("firstname", "Peter");
model2.put("secondname", "Schmitt");
return new ModelAndView("jsonView", model2);
}
的POST方法的簽名,而不是這是SampleDTO類的定義:
public class SampleDTO implements Serializable{
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
我無法執行此方法的請求。我有這樣的錯誤,從客戶端:
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.supports(Ljava/lang/Class;)Z
執行與RESTClient實現應用此POST請求與這些參數後:
http://localhost:8080/SpringExample5/createNewGame.json?phoneNumber=6 (POST)
Content-Type application/json (Header attribute)
{ "value": "a" } (Body)
這也是春天的在我的web應用程序的配置:
<bean name="/gameController.json"
class="com.alu.server.games.acquisition.controllers.GameController"/>
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
<bean id="jsonView" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"/>
<bean id="jsonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" >
<property name="objectMapper">
<ref bean="JacksonObjectMapper" />
</property>
</bean>
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jsonHttpMessageConverter" />
</list>
</property>
</bean>
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
<property name="objectMapper">
<ref bean="JacksonObjectMapper" />
</property>
</bean>
<bean id="JacksonObjectMapper" class="org.codehaus.jackson.map.ObjectMapper" />
有人可以幫我找到問題嗎? 在此先感謝!
我想你不需要在spring配置中定義jsonHttpMessageConverter,JacksonObjectMapper等。如果傑克遜類存在於類路徑中,則默認添加它們。如果配置正確,則不應調用MappingJacksonHttpMessageConverter的'supports'方法。 – Ritesh
我已經刪除了jsonHttpMessageConverter和JacksonObjectMapper的配置。但是現在我有這個錯誤:服務器拒絕了這個請求,因爲請求實體的格式不被請求的資源所請求的方法支持任何想法? – carlo
從方法中刪除'@RequestParam'後嘗試。我猜@RequestParam和@RequestBody不應該一起使用。 – Ritesh