簡體   English   中英

使用具有自定義類型的JAX-303(bean驗證)注釋

[英]Use JAX-303 (bean-validation) annotations with custom type

我有一個Web應用程序正在使用Jersey2發布各種REST服務。

在這個項目中,我使用javax.validation批注來驗證各種輸入。 但是,我有一些自定義數據類型(金錢,百分比),在某些情況下,我想在其中提供最小和最大驗證。

但是,如果我用@Min或@Max注釋字段,則會收到一條錯誤消息,即沒有驗證器,這是預期的行為,因為我的對象是復雜的數據類型。

我已經成功地實現了帶有提供此功能的驗證程序的自定義批注,但我希望重用現有的批注並為此數據類型提供自己的驗證程序,但是我找不到有關如何執行此操作的任何文檔。 可能嗎? 如果是這樣,如何為我的數據類型注冊自定義驗證器?

可以為現有約束注釋注冊您自己的驗證器。 您可以通過在META-INF/services/javax.validation.ConstraintValidator文件中提供此類驗證器的列表來做到這META-INF/services/javax.validation.ConstraintValidator 這將使用Service Loader機制查找約束驗證器,並將其添加到驗證引擎。 有關更詳細的說明,請檢查下一篇文章- 通過Java服務加載器添加自定義約束定義 ,尤其是“對非標准類使用標准約束”一節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM