后台校验传参是否含有全部必填字段

 Controller:


    @RequiresPermissions("user:add")
    @ApiOperation(value = "增加用户")
    @PostMapping("/add")
    public JSONObject addUser(@RequestBody JSONObject requestJson) {
        // 后台的必填校验
        CommonUtil.hasAllRequired(requestJson, "username, password, nickname, status,createTime,companies,roles");
        try {
            userService.addUser(requestJson);
        } catch (Exception e) {
            logger.info(e.getMessage());
            return CommonUtil.errorJson(ErrorEnum.E_30004);
        }
        return CommonUtil.successJson();
    }

 

hasAllRequired方法:

/**
     * 验证是否含有全部必填字段
     * jsonObject 为前台传的值 ,requiredColumns为必须要传的字段
     * @param requiredColumns 必填的参数字段名称 逗号隔开 比如"userId,name,telephone"
     */
    public static void hasAllRequired(final JSONObject jsonObject, String requiredColumns) {
        if (!StringTools.isNullOrEmpty(requiredColumns)) {
            //验证字段非空
            String[] columns = requiredColumns.split(",");
            String missCol = "";
            for (String column : columns) {
                //按照必填字段取前台传过来的参数
                Object val = jsonObject.get(column.trim());
                //如果没有查到那个值,就代表着传过来的字段少了
                if (StringTools.isNullOrEmpty(val)) {
                    missCol += column + "  ";
                }
            }
            if (!StringTools.isNullOrEmpty(missCol)) {
                jsonObject.clear();
                jsonObject.put("code", ErrorEnum.E_90003.getErrorCode());
                jsonObject.put("msg", "缺少必填参数:" + missCol.trim());
                jsonObject.put("info", new JSONObject());
                throw new CommonJsonException(jsonObject);
            }
        }
    }

如果所传参数为request,可以转为json:https://blog.csdn.net/weixin_43844810/article/details/90762405

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值