Iam es un concepto nuevo de SpringMVC REST. Necesito la ayuda de expertos aquí para comprender/resolver el siguiente problema, He desarrollado una aplicación SpringMVC, el siguiente es parte de un código de clase de controlador, y funciona perfectamente bien tal como está, lo que significa que funciona bien con el tipo JSON objeto,SolicitudCuadro de una aplicación 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);
y este es mi descanso servlet.xml parece
<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"/>
mi problema es ¿Cómo puedo hacer que funcione para solicitud POST normal, mi controlador no debe aceptar tipo de objeto en lugar de JSON debería funcionar para las variables HTTP POST normales. ¿Cómo obtengo los valores de la solicitud? ¿Cuáles son las modificaciones que debo hacer para eso? Necesito para deshacerse de
ObjectMapper mapper = new ObjectMapper();
CreateNewUserRequest request = mapper.readValue(payload, CreateNewUserRequest.class);
y en lugar de necesitar agregar manera de crear una instancia de
CreateNewUserRequest clase
, invocando su constructor. Para eso necesito obtener valores de la solicitud. ¿Cómo puedo hacer eso? ¿Puedo tratar @RequestBody String payload como un mapa y obtener los valores? o hay una forma específica de obtener los valores de la solicitud del método HTTP POST? los valores siguientes en la solicitud,
nombre, apellido, correo electrónico, contraseña
Gracias Tomaz, Realmente me ayudó, sin embargo este pequeño error '@RequestParam ("formParam1") formParam1: String' como '@RequestParam ("formParam1") Cadena formParam1' – bluelabel
@bluelabel : Gracias, arreglado. Demasiado Scala :-). Por cierto, puedes editar (por encima de cierto nivel de reputación) cada pregunta y respuesta aquí, como en wiki. ¡Siéntase libre de corregir errores! –