<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                新建 valid 文件夾, 在其下添加要分的組 這里是添加和更新倆個組 ``` public interface AddGroup { } ``` ``` public interface UpdateGroup { } ``` 實體類添加校驗方式注解時 groups 里表示當前注解使用的組, 多個時, groups = {UpdateGroup.class, AddGroup.class} ``` /** * 品牌id */ @TableId @NotNull(message = "修改時id不能為空", groups = {UpdateGroup.class}) @Null(message = "新增時id必須為空", groups = {AddGroup.class}) private Long id; ``` 在controller 層的方法參數前增加 實體類Group 和 @Validated 有對應的組, 才會校驗, 如果實體類Group沒有任何組,則也不校驗 ``` @Validated({AddGroup.class, UpdateGroup.class}) @RequestBody UserVo vo, ``` @Validated() 不使用分組校驗時, 實體類加了分組的則不會校驗, 只校驗Group未分組的 獲取校驗結果 ``` public R register(@Valid @RequestBody UserVo vo, BindingResult result) { if(result.hasErrors()) { /*Map<String, String> collect = result.getFieldErrors().stream().collect(Collectors.toMap(fieldError -> { return fieldError.getField(); }, fieldError -> { return fieldError.getDefaultMessage(); }));*/ // 上面的簡寫 // stream().collect 這倆種寫法注意實體類里面, 同一個字段校驗不能同時有倆個, // 否則提示 Duplicate key XXX 錯誤 /* Map<String, String> errors = result.getFieldErrors() .stream() .collect(Collectors.toMap(FieldError::getField, FieldError::getDefaultMessage)); */ // 防止 Duplicate key XXX 錯誤 可以使用for, 添加到map注意key是否已存在 List<FieldError> errors = result.getFieldErrors(); for(FieldError fieldError:fieldErrors) { errors.put(fieldError.getField(), fieldError.getDefaultMessage()); System.out.println(fieldError); } // 把未通過校驗的數據返回給前端 return R.error(errors); } } 上面這段可以只保留 @Validated({AddGroup.class}) 和 @Valid 去掉 BindingResult result 和 if() {} 在統一異常處理中解決 參考統一異常處理的文檔 @ExceptionHandler(value = MethodArgumentNotValidException.class) public R handleValidException(MethodArgumentNotValidException e) { log.error("數據校驗未通過:{},異常詳細信息:{}", e.getMessage(), e); BindingResult bindingResult = e.getBindingResult(); Map<String, String> errors = Maps.newHashMap(); // 報錯未通過的錯誤項, 返回給前端 bindingResult.getFieldErrors().forEach(fieldError -> { errors.put(fieldError.getField(), fieldError.getDefaultMessage()); }); // 把未通過校驗的數據返回給前端 // 有錯誤碼, 就加自己的錯誤碼 return R.error(errors); } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看