問題タブ [hibernate-validator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 検証制約のテスト
Hibernate Validatorのドキュメントには、検証ルールのテストの概要を説明した簡単なスタートガイドがあります。
関連するチャンクは
NotNull制約に違反しているかどうかをテストするためのかなり漠然としたルートのように思えます。
私の簡単な解決策は次のようになります
これにより、次のようなテストを行うことができます
ただし、これは長期的にはナイーブになると確信しており、単体テストの制約を支援するために不足している他のライブラリやAPIがないかどうか疑問に思っています。
hibernate - @Max と @DecimalMax (および @Min と @DecimalMin) の違い
Hibernate Validatorの@Max
と@DecimalMax
、 と@Min
の違いは何ですか?@DecimalMin
Javadoc を見ると、同じ制約が適用されているようです。
validation - Spring 3 検証と国際化
このリンクを使用して、プロジェクトの検証を構成します: Spring 3 Validation
そして、次の依存関係を追加しました。
正常に動作しますが、国際化の問題があります。中国語を使用していますが、hibernate-validator-4.1.0.Final.jar に zh_CN が存在しないことがわかりました。別のオプションはありますか?ありがとう。
java - AOP アドバイスを ConstraintValidator に適用する方法春に?
Validator
Spring 3.0.x で (JSR-303 仕様に従って)自分で作成しようとしています。
isValid(Serializable, CosntraintValidatorContext)
メソッドに で注釈を付けました@Transactional
が、トランザクションに関するアドバイスがこのメソッドに適用されていないようです。isValid()
メソッドが呼び出されると、 への呼び出しsessionFactory.getCurrentSession()
によって例外が作成されます。
org.hibernate.HibernateException: スレッドにバインドされた Hibernate セッションがありません。構成では、ここで非トランザクション セッションを作成することはできません
問題なく注入される同じ Bean があります@Autowired
sessionFactory
。Validator
私の現在の回避策はopenSession()
の代わりにを使用することですgetCurrentSession()
が、それには手動のトランザクション管理が含まれますが、これは避けたいと思います。
バリデーター Bean のコンストラクターでスタック トレースを実行するValidator
と、o.s.b.f.s.AbstractAutowireCapableBeanFactory.createBean()
. これは、ファクトリが@Autowired
my のフィールドにデータを入力できることを意味すると思いますValidator
が、トランザクションに関するアドバイスを適用していないように見えますか?
この件についてご協力いただきありがとうございます。
編集:それが助けになる場合はcreate new Exception()
、コンストラクターに記録される部分的なスタックトレース(を介して)を含めました:
トランザクション構成は正しいように見えます (STS IDE は、メソッドが(バリデーター自体に注釈を付けて)isValid()
トランザクション マネージャーによって適切にアドバイスされていることを報告します)。 Spring コンテナーの場合、データ バインディング中に検証が行われると、アドバイスが適切に適用されません。org.springframework.transaction.interceptor.TransactionInterceptor.invoke
@Component
java - 休止状態バリデーターですべてのプロパティにデフォルトの制約を設定するにはどうすればよいですか
@Valid
すべてのプロパティに自動的に制約を設定したいと考えています。
例:
@Valid
すべてのプロパティに注釈があると Validator に認識させたい。
これはどのように達成できますか?
spring - Hibernateの検証とローカライズされたエラーメッセージ?
hibernateとhibernateアノテーションのローカライズされたエラーメッセージを提供したいので、プロパティファイルValidatorMessages.properties、ValidatorMessages_ar.propertiesに作成しました
そしてそれらをresourcesフォルダーに置き、messageSourceを使用してプロパティファイルから読み取ります。
そしてクラスでは私は次のようなものを使用します:
バリデーターを呼び出すときは、次を使用します。
英語で正常に動作し、英語のメッセージを正しく表示しますが、アラビア語に切り替えると、アラビア語ではなく英語のメッセージが表示されます。
LocaleContextHolder.getLocale()
言語が変更され、アラビア語であることを示しています。そのため、構成やアイデアに欠けているものがありますか?
java - JSR 303 を使用した JSF のインライン メッセージングによるクロス フィールド検証
クラス レベルの JSR-303 制約を呼び出して JSF からクロス フィールド検証を行い、結果のメッセージを FacesMessage に変換し、ConstraintViolation の PropertyPath に基づいて特定の JSF コンポーネントに結び付ける最良の方法は何ですか?
rich:graphValidatorは近いですが、PropertyPath を利用していません。おそらく、MyFaces extval が私を近づけるかもしれませんが、bean-validation の際にフレームワークの余分なレイヤーが全体的に存在するように見えるので、私はそれを避けました。
簡単な例を次に示します。
車とドライバーに関する情報を入力するフォームを想像してください。Driver のライセンス タイプが ROAD で、Car の車のタイプが RACE の場合、結果の検証メッセージがライセンス タイプの入力に接続された FacesMessage に変換されることが理想的です。これは、メッセージが追加されたためです。 Bean Validation の流暢な API を使用してそのノードに送信します。
validation - Hibernate Validator と Spring Webflow の問題
Spring WebFlow と Hibernate Validator Annotations を使用してフォームを検証しようとしていますが、何か問題があります。
Spring 検証方法 (ValidationContext、MessageContext、validate${state} など) を使用すると、すべて正常に動作しますが、@Email、@NotEmpty などの Hibernate アノテーションを使用したいと考えています。
多くのフォーラムや Spring のドキュメントを読みましたが、何が間違っているのかわかりません。
現時点でのビューステートと次のアクション コードは次のとおりです。
これは startSignup.jsp コードです。
これは myproject.web.pojo.User POJO コードです。
(注:ご覧のとおり、Spring Validationを使用すると(validateメソッドのコメントを外す)、フォームは正常に検証されます)
そして最後に、これは私の SignupAction コードです:
Hibernate Validation を使用すると、フローは検証なしで saveUser メソッドに到達します。
私はSpring 3を使用しています:
- 春 3.0.5.RELEASE
- 春の WebFlow 2.2.1.RELEASE
- Hibernate Validator 4.0.2.GA
私が間違っていることは何ですか?
助けてくれてどうもありがとう!:)