2013-09-23 45 views
2

我有一个通过ajax发送给控制器的窗体。在该控制器中,输入被验证,并返回一个json对象。如何将Spring MVC视图渲染为字符串

如果有错误,我返回该值为“FAIL”的json对象中的一个属性(字符串),以便我可以在客户端分析它。

我想要做的是呈现一个视图,并将其作为字符串属性放在该json对象中,以便当没有错误(SUCCESS)时,我可以使用该html中的div设置div呈现的视图。

我该怎么做?

有没有更好的方法呢?

+0

请添加你试过的代码 –

+0

我没有代码..我有代码,我做验证和JavaScript代码来分析json retun对象。这是工作...我需要的是如何呈现视图并返回呈现的视图的HTML内的字符串的一些信息... – RLuceac

+0

取决于您使用的视图技术。如果您使用Velocity之类的东西,您可以将模板读入字符串。 – Bart

回答

4

做到了!

这里是我的解决方案:

我用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); 
} 

这就是所有!

1

如果您使用的是JSP,那么您无法使用Spring呈现视图,因为Spring并未编译JSP页面。根据视图的长度,解决方案是以手工方式构建您的视图,如String(简单HTML无JSP标记)并将其作为JSON返回。

编辑:在这个Render Spring MVC to String or PDF六必居Kunjummen 看看回答

+0

好的,谢谢..我会尝试百里香.. – RLuceac

相关问题