我有一个通过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