我在为以下功能配置 Spring 时遇到问题 - 我需要 View 请求正常运行(渲染 View ),并且服务请求只需执行而不渲染任何内容。 我遇到的问题是,在 Controller 执行之后,即使 Controller 方法没有返回任何内容(void),Spring 也会决定对 ModelAndView 进行实例化。这会触发要呈现的 View ,而事实上,一旦 Controller 完成了它的工作,我只想什么都不做。 我确定这一定是我在 Spring 配置中做错了(我的猜测是它与 View 解析器有关)。 对此的任何帮助表示赞赏。 谢谢。
代码如下:
@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>
最佳答案
返回 null 无效。
与此同时,我找到了解决方案 - 我需要用
注释该方法@ResponseBody
关于model-view-controller - 没有呈现 View 的 Spring MVC 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5371565/