如何将Spring MVC视图呈现为字符串

时间:2013-09-23 11:33:27

标签: java jquery ajax json spring-mvc

我有一个通过ajax发送到控制器的表单。在该控制器中,输入被验证,并返回一个json对象。

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

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

我该怎么做?

有更好的方法吗?

2 个答案:

答案 0 :(得分:4)

完成它!!

这是我的解决方案:

我使用了百里香,所以我可以在我的控制器中渲染一页。

我使用了我在网上找到的不同信息的一些部分..不记得所有信息,所以,谢谢,抱歉不要把链接放在这里......

首先,我通过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 :(得分:1)

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

编辑: 看一下这个Render Spring MVC to String or PDF Biju Kunjummen的回答