2011-03-01 28 views
0

我想在我的控制器返回內容比JSON其他,但我似乎無法得到它的工作。理想情況下,我想以純文本或html形式返回呈現的速度模板。使用VelocityView或純文本控制器響應?

這是我在我的控制器:

@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

回答

2

如果你的方法與@ResponseBody註釋,那麼Spring MVC視圖層將完全繞過。

如果你不感興趣的JSON輸出,然後@ResponseBody是不合適的 - 只是將其刪除,你的速度的觀點將被使用。

如果您需要在JSON和其他View圖層之間切換,那麼您應考慮刪除@ResponseBody並使用ContentNegotiatingViewResolver來代替。見Spring docs如何處理此問題。

+0

卸下肯定@ResponseBody解決了問題的一半......我想。但是現在這個URL根本不能解決。我會繼續挖掘它。你知道我有沒有想要做的事情的例子?我看了......他們都不排隊恰到好處新的人到這些話題。 – javamonkey79 2011-03-01 22:33:35

+0

@ javamonkey79:我不確定你*正在努力做什麼...... – skaffman 2011-03-01 22:34:59

+0

哈 - 那是誠實的。我只是試圖讓控制器返回已通過速度呈現的html或String數據。理想情況下,我想在速度服務器端呈現控制器中的html表格,而不是使用json + javascript客戶端進行。 – javamonkey79 2011-03-01 22:45:40