Spring MVC请求未呈现视图

12
我在 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>

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

16

返回 null 无法生效。

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

@ResponseBody


1

-2

我相信你可以通过返回null来实现这一点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接