我正在使用Velocity和Spring。在Spring中,我使用VelocityViewResolver
與ContentNegotiatingViewResolver
配對。在大多數情況下,這很有用。唯一的問題是ContentNegotiatingViewResolver
與VelocityViewResolver
查詢許多不同的內容集(它應該)。如何關閉Spring中的VelocityViewResolver錯誤?
當速度發動機沒有找到特定的模板,產生一個錯誤類似於以下:
2011-02-04 13:37:15074 ERROR [HTTP-8080-2] VelocityEngine :ResourceManager:無法在任何資源加載器中找到資源「foo.json.vm」。
這並不理想。理想情況下,如果找不到模板,則會生成警告或類似的內容。如果某個特定內容類型的模板不存在,我真的不在意......因爲這意味着內容類型不支持通過該視圖解析器。
有關如何通過VelocityViewResolver
,VelocityView
或ContentNegotiatingViewResolver
來抑制此錯誤的任何想法?
VelocityViewResolver javadoc說:「當鏈接ViewResolver時,VelocityViewResolver總是需要最後一個,因爲它會嘗試解析任何視圖名稱,而不管底層資源是否真的存在」。也許你可以繼承VelocityViewResolver並覆蓋buildView(String viewName),這樣你就可以檢查視圖是否存在,如果不存在,那麼你可以將viewName更改爲「未找到」vm視圖名稱並調用super.buildView(viewName)。這只是一個想法,如果它有幫助。 – Javi 2011-02-04 20:03:32