Iam是SpringMVC REST概念的新成員。需要來自這裏的專家的幫助來理解/解決以下問題, 我開發了一個SpringMVC應用程序,下面是控制器類代碼的一部分,它的工作方式非常好,這意味着它可以與JSON類型一起工作對象,REST應用程序的RequestBody
@RequestMapping(method = RequestMethod.POST, value = "/user/register")
public ModelAndView addUser(@RequestBody String payload) {
try{
ObjectMapper mapper = new ObjectMapper();
CreateNewUserRequest request = mapper.readValue(payload, CreateNewUserRequest.class);
UserBusiness userBusiness = UserBusinessImpl.getInstance();
CreateNewUserResponse response = userBusiness.createNewUser(request);
return new ModelAndView(ControllerConstant.JASON_VIEW_RESOLVER, "RESPONSE", response);
,這是我的休息-servlet.xml中看起來像
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<bean id="jsonViewResolver" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
<bean id="viewResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver" />
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jsonConverter" />
</list>
</property>
</bean>
<bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes" value="application/json" />
</bean>
<bean name="UserController" class="com.tap.mvp.controller.UserController"/>
我的問題是如何使之正常POST請求的工作,我的控制器不應該接受JSON類型的對象,而不是它應該適用於普通的HTTP POST變量。 如何從請求中獲取值?我應該爲此做些什麼修改。我需要擺脫的
ObjectMapper mapper = new ObjectMapper();
CreateNewUserRequest request = mapper.readValue(payload, CreateNewUserRequest.class);
,而是需要添加的方式來創建
CreateNewUserRequest
類的一個實例,通過調用它的構造。爲此,我需要從請求中獲取值。我怎麼做?我可以將@RequestBody字符串有效載荷作爲地圖並獲取值嗎?或者有沒有一種特定的方式來從HTTP POST方法的請求中獲取值?下面的值將在該請求,
名字,姓氏,電子郵件,密碼
感謝托馬日,這真的幫助了,但是小錯誤這個 '@RequestParam( 「formParam1」)formParam1:字符串' 爲 '@RequestParam( 「formParam1」)字符串formParam1' – bluelabel 2012-01-11 04:58:57
@bluelabel :謝謝,修正。太多的斯卡拉:-)。順便說一句,你可以編輯(超過一些聲譽級別)每個問題和答案,就像在wiki中一樣。隨時糾正錯誤! – 2012-01-11 07:43:02