对所有请求参数进行拦截验证? 400 报错
@JFinal 你好,想跟你请教个问题:
我想在Validator拦截器中对所有参数进行验证 代码如下:
public class ParamsInterceptor extends Validator {
private String val;
@Override
protected void validate(Controller c) {
Enumeration<String> paraNames = c.getParaNames();
while (paraNames.hasMoreElements()) {
val=paraNames.nextElement();
validateRequired("name", "name", "数据格式有误...");
}
}
@Override
protected void handleError(Controller c) {
c.renderJson("{\"status\":"+Code.SYS_PARAMETER_ERROR+",\"msg\":"+val+"数据格式有 \误...,\"success\":"+false+"}");
}
}
问题:怎样当参数有误时直接调用handleError方法 ,循环的话验证不起作用
当 validate 中的 validateRequired("name", "name", "数据格式有误...") 这个方法出现验证失败的情况,会自动去掉用 handleError
如果 validate 中没能使用过使用 validateXxxx 系列的方法,还可以手动使用 addError(...) 方法,也会自动引发 handleError 方法被调用
######super. setShortCircuit(true);加一个这个就好了版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。