jfinal validate 表单使用ajax提交问题

小石头哥 发布于 2013/08/19 13:17
阅读 1K+
收藏 4
@jfinal 想问问你我表单是用ajax提交的,进行验证的时候。怎么返回那些个错误消息方便点拟。或者我在handleError哪里我如何能获取validate里面验证不通过的信息。我可以更方便的用renderJson返回前台处理。在 handleError里面如果我用controller.getRequest().getAttribute("xxx")这样一个一个得到然后封装json的话就麻烦了。。
加载中
0
一路找北

我之前也碰到过这个问题,我个人感觉在Validator的抽象类中,增加一个Map成员变量用来保存错误信息比较好,而不是全部都用Controller的attr来保存。再提供一个protected的get方法,这样在子类handleError方法中可以随时获取到所有的错误提示信息,无论是转发页面,还是用ajax方式renderJson,都很方便。希望JFinal可以考虑一下。

0
如梦技术
如梦技术
@Override
protected void validate(Controller c) {
	validateEmail("email", "status", "1");
}

@Override
protected void handleError(Controller c) {
        // status == 1 校验不过
	c.renderJson(new String[]{"status"});
}

完全不用去组装啊

0
进击的代码
进击的代码
楼上正解~如果返回复杂数据可以使用Map键值对来存储返回,一般的字符串就直接c.renderJson("XXXXX")了
0
小石头哥
小石头哥

引用来自“孤独的3”的答案

@Override
protected void validate(Controller c) {
	validateEmail("email", "status", "1");
}

@Override
protected void handleError(Controller c) {
        // status == 1 校验不过
	c.renderJson(new String[]{"status"});
}

完全不用去组装啊

那还是要一个一个的去写啊
如梦技术
如梦技术
yes 他是把你request里面的attr都组装成json的
走位风骚闪着腰
走位风骚闪着腰
回复 @孤独的3 : 直接renderJson(); 会返回"ctx_path":""??
如梦技术
如梦技术
c.renderJson(); 就好了, 我那是把 session 都传递到 request 里面去了 直接 renderJson(); 会把一些信息给泄漏出来!
0
JFinal
JFinal
renderJson()
0
小石头哥
小石头哥

引用来自“JFinal”的答案

renderJson()

关键你那个提示信息如何得到。

0
小石头哥
小石头哥

引用来自“一路找北”的答案

我之前也碰到过这个问题,我个人感觉在Validator的抽象类中,增加一个Map成员变量用来保存错误信息比较好,而不是全部都用Controller的attr来保存。再提供一个protected的get方法,这样在子类handleError方法中可以随时获取到所有的错误提示信息,无论是转发页面,还是用ajax方式renderJson,都很方便。希望JFinal可以考虑一下。

我也觉得。比如我们有时候在前端显示在一块地方,那么后台如果可以用字符串叠加起来就方便多了再前台取值。那么我们就不用一个一个的去写那个属性,在作用域中取
返回顶部
顶部