(已解决)关于validator多传几个参数的疑惑,为什么不能直接传一个Ret?

如果可以直接set一个Ret进去,那不是更加方便吗?

前端需要知道是那个Id校验失败!!

下面是我的笨办法:

先设id,再取回来,再set错误信息!

package com.analysis.validator;

import com.jfinal.core.Controller;
import com.jfinal.validate.Validator;

public class ReportAddValidator extends Validator {
   
   protected void validate(Controller c) {
      setShortCircuit(true);
      validateRequired("financialMonthReport.saleAmount", "id", "saleAmount");
      validateRequired("financialMonthReport.budget", "id", "budget");
      validateRequired("financialMonthReport.completeRate", "id", "completeRate");
      validateRequired("financialMonthReport.wjAmount", "id", "wjAmount");
      validateRequired("financialMonthReport.wjRate", "id", "wjRate");
      validateRequired("financialMonthReport.lsAmount", "id", "lsAmount");
   }

   protected void handleError(Controller c) {
      String errId = c.getAttr("id");
      switch (errId){
         case "saleAmount":
            c.setAttr("msg","当月销售收入,不能为空!");
            break;
         case "budget":
            c.setAttr("msg","年预算,不能为空!");
            break;
         case "completeRate":
            c.setAttr("msg","完成率,不能为空!");
            break;
         case "wjAmount":
            c.setAttr("msg","五金当月销售,不能为空!");
            break;
         case "wjRate":
            c.setAttr("msg","五金占比,不能为空!");
            break;
         case "lsAmount":
            c.setAttr("msg","管道当月销售,不能为空!");
            break;
      }
      c.renderJson();
   }

}


评论区

JFinal

2021-03-14 12:52

你猜对了,确实就是这么设计的,用一下 setRet 即可:
在 jfinal-club 项目中搜索 setRet 与 getRet ,有实际的例子可以参考

fmpoffice

2021-03-16 16:44

@JFinal 懂了,原来可以这届setRet这么使。

热门反馈

扫码入社