Tengo problemas con una configuración de Spring para la siguiente funcionalidad: necesito que las solicitudes de vista se comporten normalmente (renderizan la vista) y las solicitudes de servicio simplemente se ejecuten sin mostrar nada. El problema que tengo es que, después de que se ejecuta el controlador, en algún momento de la línea Spring decide que se debe crear una instancia de ModelAndView aunque el método del controlador no devuelva nada (nulo). Esto hace que se visualice una vista, cuando en realidad simplemente no quiero hacer nada una vez que el controlador ha hecho su trabajo. Estoy seguro de que debe ser algo que estoy haciendo mal en la configuración de Spring (supongo que está relacionado con el resolver de vista). Se agradece cualquier ayuda sobre esto. Gracias.Solicitud Spring MVC sin visualización
Aquí está el código:
@Controller
@RequestMapping("actions")
public final class ServiceController{
private static final Logger logger = LoggerFactory.getLogger(ServiceController.class);
@RequestMapping(value = "/submit.service",method = RequestMethod.POST)
public void test(@RequestParam("mail") String mail){
ServiceController.logger.info(mail);
}
}
Y los servlets en web.xml:
<servlet>
<servlet-name>viewServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/viewServlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>viewServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
El contexto es:
<annotation-driven />
<beans:bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<beans:property name="resourceLoaderPath" value="/WEB-INF/velocity/" />
</beans:bean>
<beans:bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<beans:property name="cache" value="true" />
<beans:property name="prefix" value="" />
<beans:property name="suffix" value=".vm" />
</beans:bean>
Tipo de devolución de nulo en RequestMapping significa que tiene la intención de responder a la solicitud usted mismo que no está haciendo – krock