gpt4 book ai didi

java - 在 Controller 响应中使用 VelocityView 或纯文本?

转载 作者:行者123 更新时间:2023-12-02 08:22:48 25 4
gpt4 key购买 nike

我正在尝试在 Controller 中返回除 json 以外的内容,但我似乎无法让它工作。理想情况下,我想以纯文本或 html 形式返回渲染的速度模板。

这是我 Controller 中的内容:

@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

最佳答案

如果你的方法用@ResponseBody注释,那么Spring MVC View 层将被完全绕过。

如果您对 JSON 输出不感兴趣,那么 @ResponseBody 是不合适的 - 只需将其删除,系统就会使用您的 Velocity View 。

如果您需要在 JSON 和其他 View 层之间切换,那么您应该考虑删除 @ResponseBody 并使用 ContentNegotiatingViewResolver 代替。请参阅Spring docs了解如何设置。

关于java - 在 Controller 响应中使用 VelocityView 或纯文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5158173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com