2011-03-20 14 views
11

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> 
+0

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

Respuesta

13

La devolución de null no funcionó.

Mientras tanto, he encontrado la solución - que necesitaba para anotar el método con

@ResponseBody

-2

Creo que se puede alcanzar que, de devolviendo null.

+0

por favor explique cómo –