2012-02-01 60 views
0

我主要使用帶註釋的控制器,該控制器返回Spring和Freemarker使用的ModelAndView對象來呈現頁面並將其返回給瀏覽器,這很好。我現在想回應ajax gets和在XML消息中返回html片段作爲有效載荷的帖子。如何使用具有Freemarker的帶註釋的Spring控制器來返回自定義ajax響應

我沒有返回ModelAndView對象的問題似乎混淆了Spring WRT到@ModelAttribute和會話對象,這些對象支持從/和表單中的數據。

我不得不破解freemarker模板來支持i18n消息等等。我發現,簡單地渲染一個FTL文件,同時也試圖利用Spring的對象呈現froms變得相當兔子洞。

我試圖手動(猜測是什麼)並做了幕後的事情,並沒有最佳的工作。爲了編輯一個對象,我手動將對象放在會話中以渲染編輯窗體。當帖子回來的時候,對象中有剩餘/不同的值,我退出會話並且返回Spring爲我提供的ModelAttribute。

底線?有關Freemarker呈現的Spring,Freemarker和自定義非ModelAndView響應的問題。

+0

我覺得我需要澄清。主要的問題是試圖通過直接訪問模板來呈現FTL文件。當這樣做時,i18n對象以及Spring提供的任何BindingResult都會丟失。我自己把它放在那裏工作,但那是滑坡開始的地方,我滑動:-( – user1182845 2012-02-01 14:50:42

+0

解決方案:我添加了另一個FreeMarkerViewResolver實例,它只有viewNames ='*。frg'。 viewClass是我自己的類,它通過覆蓋'processTemplate'方法以我想要的方式呈現模板。現在所有的東西都是和諧的。 – user1182845 2012-02-01 18:19:48

+1

這是絕對可以接受的,甚至是首選發表一個答案給你自己的問題 – nfechner 2012-02-02 08:33:06

回答

0

添加FreeMarkerViewResolver的另一個實例,該實例僅包含viewNames ='*.frg'viewClass應該是您自己的類,它可以通過覆蓋processTemplate方法以您想要的方式呈現模板。

+0

(注意:只是將OP的評論從評論中解釋爲實際答案。) – 2012-09-10 04:15:08

相關問題