问题 没有视图呈现的Spring MVC请求


我遇到以下功能的Spring配置问题 - 我需要视图请求正常运行(呈现视图),服务请求只需执行而不呈现任何内容。 我遇到的问题是,在控制器执行之后,在某个地方,Spring决定应该实例化ModelAndView,即使控制器方法没有返回任何内容(void)。这会触发一个要呈现的视图,而实际上我想在控制器完成它的工作后什么都不做。 我确定它一定是我在Spring配置中做错了(我的猜测是它与视图解析器有关)。 对此有任何帮助表示赞赏。 谢谢。

这是代码:

@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 );
    }
}

和web.xml中的servlet:

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

背景是:

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

5011
2018-03-20 21:18


起源

RequestMapping上的Void返回类型意味着您打算自己响应请求,而您自己没有这样做 - krock


答案:


返回null无效。

与此同时,我找到了解决方案 - 我需要用方法注释方法

@ResponseBody


13
2018-03-26 18:06





另一种解决方案是返回responseEntity, http://www.captaindebug.com/2011/07/using-spring-responseentity-class.html毕竟你需要一种方法将错误信号发送回客户端,如果发生异常则使用@ResponseEntity,spring会在html页面中呈现。使用ResponseEntity,您可以使用http 500添加自定义数据。


1
2017-11-09 19:22





我相信你可以通过回归实现这一目标 null


-2
2018-03-20 21:25



请解释一下 - Pravat Panda