我有一个通过ajax发送到控制器的表单。在该控制器中,输入被验证,并返回一个json对象。
如果有错误,我在该json对象中返回一个属性(字符串),其值为“FAIL”,以便我可以在客户端进行分析。
我要做的是渲染一个视图,并将其作为字符串属性放在json对象中,这样当没有错误(SUCCESS)时,我可以使用渲染的html设置div图。
我该怎么做?
有更好的方法吗?
答案 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的回答