SpringMVC RESTコンセプトの新機能です。 私はSpringMVCアプリケーションを開発しました。次はコントローラクラスコードの一部であり、それは完全に正常に動作します。つまり、JSON型で正常に動作することを意味します。オブジェクト、私の問題は、私はそれが通常のPOSTリクエストのために働く作るのですか、私のコントローラの代わりにJSON型オブジェクトを受け入れるべきではない方法です RESTアプリケーションのRequestBody
<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"/>
よう
@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ですが見えますそれは通常のHTTP POST変数で動作するはずです。 リクエストから値を取得するにはどうすればよいですか?私は
ObjectMapper mapper = new ObjectMapper();
CreateNewUserRequest request = mapper.readValue(payload, CreateNewUserRequest.class);
を取り除き、代わりにそのコンストラクタを呼び出すことによって、
CreateNewUserRequest
クラスのインスタンスを作成する方法を追加する必要がありますする必要があります。そのために私は要求から値を取得する必要があります。それ、どうやったら出来るの? @RequestBody Stringペイロードを地図として扱い、値を取得できますか?またはHTTP POSTメソッドのリクエストから値を取得する特定の方法はありますか?次の値は、要求の中であなたがここに二つの概念を混合さ
のfirstName、lastNameの、電子メール、パスワード
おかげTomaz、それは本当に助け、しかし、小さなミスこの '@RequestParam( "formParam1")formParam1:string' を 'として@RequestParam( "formParam1")文字列formParam1' – bluelabel
@bluelabel :ありがとう、固定。 Scalaが多すぎます:-)あなたはwikiのようにここでのすべての質問と回答を編集することができます(評判レベルを超えています)。気をつけて間違いを修正してください! –