开发者社区> 问答> 正文

对所有请求参数进行拦截验证? 400 报错

对所有请求参数进行拦截验证? 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方法 ,循环的话验证不起作用




展开
收起
爱吃鱼的程序员 2020-05-30 16:45:13 453 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

        当 validate 中的 validateRequired("name", "name", "数据格式有误...") 这个方法出现验证失败的情况,会自动去掉用 handleError

        如果 validate 中没能使用过使用 validateXxxx 系列的方法,还可以手动使用 addError(...) 方法,也会自动引发 handleError 方法被调用

    ######super. setShortCircuit(true);加一个这个就好了
    2020-05-30 16:45:14
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载