我有一個通過ajax發送給控制器的窗體。在該控制器中,輸入被驗證,並返回一個json對象。如何將Spring MVC視圖渲染爲字符串
如果有錯誤,我返回該值爲「FAIL」的json對象中的一個屬性(字符串),以便我可以在客戶端分析它。
我想要做的是呈現一個視圖,並將其作爲字符串屬性放在該json對象中,以便當沒有錯誤(SUCCESS)時,我可以使用該html中的div設置div呈現的視圖。
我該怎麼做?
有沒有更好的方法呢?
我有一個通過ajax發送給控制器的窗體。在該控制器中,輸入被驗證,並返回一個json對象。如何將Spring MVC視圖渲染爲字符串
如果有錯誤,我返回該值爲「FAIL」的json對象中的一個屬性(字符串),以便我可以在客戶端分析它。
我想要做的是呈現一個視圖,並將其作爲字符串屬性放在該json對象中,以便當沒有錯誤(SUCCESS)時,我可以使用該html中的div設置div呈現的視圖。
我該怎麼做?
有沒有更好的方法呢?
做到了!
這裏是我的解決方案:
我用thymeleaf這樣我就可以呈現在我的控制器的頁面。
我使用不同的信息,我在網上找到的一些地方..不remembet他們所有,所以感謝和抱歉,不把這裏的鏈接....
首先,我通過AJAX發送表單數據控制器。在控制器中,我創建一個對象並將狀態字段設置爲FAIL的SUCCESS,如果失敗,我將返回在我的對象上設置錯誤信息,如果成功,我將字段設置爲我的頁面響應的HTML。所以我把這個對象發回客戶端(JSON)並分析這些字段。
貝婁是代碼:
控制器:
@RequestMapping(value = "/calcdireto.json", method = RequestMethod.POST)
public @ResponseBody CalcDiretoResponse processFormAjaxJson(Model model,
@ModelAttribute(value = "formBean") @Valid CalcDiretoFormBean cdBean,
BindingResult result) {
CalcDiretoResponse res = new CalcDiretoResponse();
if (!result.hasErrors()) {
res.setValStatus("SUCCESS");
final WebContext ctx = new WebContext(request,servletContext,request.getLocale());
res.setHtml(this.templateEngine.process("subpage", ctx));
return res;
} ...
,並在頁面:
if (response.valStatus == 'SUCCESS') {
$("#pp-result").html(response.htm);
}
這就是所有!
如果您使用的是JSP,那麼您無法使用Spring呈現視圖,因爲Spring並未編譯JSP頁面。根據視圖的長度,解決方案是以手工方式構建您的視圖,如String
(簡單HTML無JSP標記)並將其作爲JSON返回。
編輯:在這個Render Spring MVC to String or PDF六必居Kunjummen 看看回答
好的,謝謝..我會嘗試百里香.. – RLuceac
請添加你試過的代碼 –
我沒有代碼..我有代碼,我做驗證和JavaScript代碼來分析json retun對象。這是工作...我需要的是如何呈現視圖並返回呈現的視圖的HTML內的字符串的一些信息... – RLuceac
取決於您使用的視圖技術。如果您使用Velocity之類的東西,您可以將模板讀入字符串。 – Bart