Iam бит новый для концепции SpringMVC REST. Нужна помощь от экспертов здесь, чтобы понять/решить следующую проблему, Я разработал приложение SpringMVC, следующее является частью кода класса контроллера, и оно отлично работает с тем, как оно есть, что означает, что он работает нормально с типом JSON объект,RequestBody приложения REST
@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 String полезную нагрузку как карту и получить значения? или существует конкретный способ получения значений из запроса метода HTTP POST? Следующие значения будут в запросе,
ПгвЬЫате, LastName, адрес электронной почты, пароль
Благодаря Tomaz, это действительно помогло, однако небольшая ошибка это '@RequestParam ("formParam1") formParam1: String' как '@RequestParam ("formParam1") Строка formParam1' – bluelabel
@bluelabel : Спасибо, исправлено. Слишком много Scala :-). BTW вы можете редактировать (выше уровня репутации) каждый вопрос и отвечать здесь, как в wiki. Не стесняйтесь исправить ошибки! –