91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring in action @valid驗證不生效怎么辦

發布時間:2021-06-10 09:19:32 來源:億速云 閱讀:882 作者:小新 欄目:開發技術

小編給大家分享一下Spring in action @valid驗證不生效怎么辦,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

解決Spring in action @valid驗證不生效

按照書上的示例代碼來實現但是,添加了驗證但是沒有生效。

Spring提供了校驗Api是使用但是沒有提供實現,所以需要自己導入實現包。

所以導入實現包:

<dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.1.1.Final</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.validation/validation-api -->
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.1.0.Final</version>
        </dependency>

但是還是沒有解決問題,程序正常運行,校驗不生效。

想到之前用Maven來導入一些jar報的時候,還是會提示找不到(不知道是不是因為使用的Xampp自帶的tomcat的原因)。之前的解決辦法就是把Jar包丟到Tomcat的lib文件夾下。

于是就把上面Maven下載下來的兩個jar包丟了進去,果然發生了一些變化,這次出現了報錯,程序不能正常運行。

報錯:

Hibernate Validator java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.internal.engine.ConfigurationImpl

然后查找解決辦法,在Stack Overflow上找到了解決辦法,缺少org.jboss.logging和com.fasterxml classmate包,所以在Maven中加入

  <dependency>
    <groupId>org.jboss.logging</groupId>
      <artifactId>jboss-logging</artifactId>
      <version>3.3.2.Final</version>
  </dependency>
  <dependency>
      <groupId>com.fasterxml</groupId>
      <artifactId>classmate</artifactId>
      <version>1.3.4</version>
  </dependency>

但是還是沒有解決問題,使用老辦法,把這兩個Jar包丟到Tomcat的lib文件夾下,問題解決。

最近遇到好多Maven導入的包在運行的時候不生效的問題,就是不報錯,但是運行的時候nodefClass錯誤。

找到解決辦法:解決idea導入maven項目缺少jar包的問題方法

springboot @Validate不生效的原因

使用validate相關注解卻沒用生效的問題

public class LoginRequest implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "手機號", required = true, example = "18888888")
    @Pattern(regexp = RegularConstants.PHONE, message = "手機號碼格式錯誤")
    @JsonProperty(value = "phone")
    private String phone;
    @ApiModelProperty(value = "密碼", required = true, example = "1~[6,18]")
    @Pattern(regexp = RegularConstants.PASSWORD, message = "密碼格式錯誤,密碼必須以字母開頭,長度在6~18之間,只能包含字符、數字和下劃線")
    private String password;
}

解決思路

引入hibernate相關依賴

   <dependency>
            <groupId>org.hibernate.validator</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>6.0.21.Final</version>
        </dependency>
        <dependency>
            <groupId>javax.el</groupId>
            <artifactId>javax.el-api</artifactId>
            <version>3.0.0</version>
        </dependency>

相關配置

@Configuration
public class ValidatorConfiguration {
    @Bean
    public Validator validator() {
        ValidatorFactory validatorFactory = Validation.byProvider(HibernateValidator.class)
                .configure()
                .addProperty("hibernate.validator.fail_fast", "true")
                .buildValidatorFactory();
        return validatorFactory.getValidator();
    }
}

全局攔截驗證錯誤

@RestControllerAdvice
public class WebGlobalExceptionHandler {
//    private static final Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);
    /**
     * 攔截JSON參數校驗
     */
//    @ResponseStatus(HttpStatus.OK)
    @ExceptionHandler(MethodArgumentNotValidException.class)
    public CommonResult bindException(MethodArgumentNotValidException e) {
        BindingResult bindingResult = e.getBindingResult();
        return CommonResult.failed(ExceptionCodeEnum.VALIDATE_FAILED,Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
    }
}

看完了這篇文章,相信你對“Spring in action @valid驗證不生效怎么辦”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德州市| 乌审旗| 剑川县| 蒙自县| 曲周县| 华亭县| 郴州市| 绥滨县| 广汉市| 武义县| 黑水县| 化德县| 中方县| 宁南县| 和田县| 长春市| 淮北市| 双桥区| 陇川县| 石林| 湖州市| 鲁山县| 平塘县| 吉木乃县| 平乡县| 周至县| 西安市| 郁南县| 东至县| 鞍山市| 宁陕县| 襄城县| 抚宁县| 莒南县| 洛浦县| 南城县| 林周县| 东辽县| 杂多县| 饶河县| 兴宁市|