我正在尝试在我的控制器中返回除了json 之外的内容,但我似乎无法让它工作。理想情况下,我想将渲染的速度模板作为纯文本或html返回。
这就是我在控制器中所拥有的:
@RequestMapping( value = "time", headers = "Accept=*/*", method = RequestMethod.GET )
public @ResponseBody
Date getCurrentTime( HttpServletRequest request, HttpServletResponse response ) {
response.setContentType( "text/plain" );
return new Date();
}
这是在我的springmvc-servlet.xml中(我知道这不对......但我在这里有点丢失):
<context:component-scan base-package="com.paml.alerter.controller" />
<!-- Configures the @Controller programming model -->
<mvc:annotation-driven />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="cache" value="true" />
<property name="prefix" value="" />
<property name="suffix" value=".vm" />
</bean>
<!-- This bean sets up the Velocity environment for us based on a root path
for templates. Optionally, a properties file can be specified for more control
over the Velocity environment, but the defaults are pretty sane for file
based template loading. -->
<bean id="velocityConfig"
class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="resourceLoaderPath" value="/WEB-INF/velocity/" />
</bean>
有谁知道如何正确设置?
TIA
答案 0 :(得分:2)
如果您的方法使用@ResponseBody
注释,那么将完全绕过Spring MVC视图层。
如果您对JSON输出不感兴趣,那么@ResponseBody
是不合适的 - 只需将其删除,即可使用您的Velocity视图。
如果您需要在JSON和其他View
图层之间切换,则应考虑删除@ResponseBody
并使用ContentNegotiatingViewResolver
代替。有关如何进行设置,请参阅Spring docs。