問題タブ [spring-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 - spring mvc登録フォームで2つのパスワードエントリが同一かどうかを確認しますか?
jsp を使用して Spring MVC アプリで一致するパスワード エントリを確認するために登録フォームを送信しようとすると、次のエラー メッセージが表示されます。
登録フォームには、ユーザーがタイプミスをしていないことを確認するためpassword
のフィールドとフィールドがあります。passwordtest
つまり、新しいユーザーのパスワードがデータベースに保存される前に、サーバーが両方の入力が一致することを確認できるように、ユーザーは要求された新しいパスワードを 2 回入力するよう求められます。
以下のコードを変更して、Spring がサーバー側の検証を実行して、ユーザーの 2 回のパスワードの試行が同一であることを確認し、同一でない場合は有用なアラート メッセージをビューに送信するにはどうすればよいですか?
2 つのフィールドの jsp コードは次のとおりです。
問題newUserFormValidator.java
は、次のコードを持つクラスにあるようです。
スタック トレースが指す jsp 内のコード行は次のとおりです。
ただし、このコード行は、ユーザーがパスワード フィールドを空のままにしておくと、エラーを正常に出力することに注意してください。したがって、問題は、何か他のものを追加する必要があることだと思います。
spring-mvc - 新しい TLD に従ってメールが検証されるようにする方法
私は春の検証を使用しています:
しかし、新しい TLD が尊重されるようにしたいと考えています。春は電子メールドメインのTLDを調べて、それらが順守されていることを確認しますか?
例を挙げると、次のように検証します: joe@emperor.clothing
java - Spring MVC はハンドラーメソッドのパラメーターをどのように解決および検証しますか?
私はSpring MVCの初心者で、サーバー側の検証に関連するチュートリアルプロジェクトをインポートしましたが、それがどのように機能するかについて疑問があります.
したがって、次のログイン フォームを含むlogin.jspという名前のログイン ページがあります。
モデルから取得したcommandName="user"属性によって指定されたオブジェクトを使用して、ユーザーが挿入したユーザー名とパスワードを保存すると思います (間違ったアサーションを行っている場合は訂正してください)。
このcommandName="user"は、このUserクラスのインスタンスです。
ご覧のとおり、ユーザー名とパスワードのフィールドで@NotBlankと@Sizeの検証アノテーションが宣言されています。
そしてここで最初の疑問: 2 つの使用されたライブラリjavax.validationおよびorg.hibernate.validatorとの違いは正確には何ですか?
チュートリアルで両方を使用するのはなぜですか? 休止状態バリデータ ライブラリのみを使用して同じことを行うことはできますか? (Hibernate バリデーターを使用して文字列の有効な長さを指定できると思いますか?)
したがって、ログイン フォームが送信されると、コントローラー クラスに宣言されたこのメソッドによって処理される/loginリソースに対する HttpRequest が生成されます。
わかりました、そして今、私はこの方法について次の疑問を持っています:
1) このオブジェクトを入力パラメーターとして受け取ります: @Valid User user。誰がそれに合格しますか?フォームでcommandName="user"と指定したことで、Spring が自動でやってくれるのではないかと思います。それが正しいか?
2)私が理解していることから、@Validアノテーションは自動的に検証プロセスを呼び出します。それはどのように起こりますか?Spring が提供するAOP機能に関連するものはありますか? または何?この@Validアノテーションがjavax.validationライブラリのみに関連し、Hibernate バリデーターには関連しないのはなぜですか (したがって、この@Validアノテーションは、Hibernate バリデーターアノテーションでアノテーションが付けられたフィールドも検証するのですか?なぜですか?)
3)ユーザーがログインフォームに間違った値を挿入した場合、私が理解していることから、BindingResult br入力パラメーターによってこのエラーを取得できます。デバッガーを使用すると、このオブジェクトには、 Userモデル オブジェクトに定義された注釈によって定義されたエラー メッセージが含まれていることがわかります。正確にはどのように機能しますか?
TNX
java - Spring REST - プリミティブ GET リクエスト パラメータの検証
注釈を使用してプリミティブ (int、String など) GET パラメータを検証する方法はありますか?
ご覧のとおり、someInt が 10 桁の正の整数であることを検証するために一連の注釈を付けましたが、それでもあらゆる種類の整数を受け入れます。
spring - 他のすべての Bean を作成する前に、Spring Boot に Bean バリデーターを作成させる方法
LocalValidatorFactoryBean
既存の Spring Boot Web アプリケーションに を追加しようとしています。
私が何を試しても(すぐにリストされます)、他のほとんどのBean(ロギングとブレークポイントの両方で検証された)の後にバリデーターを作成するだけなので、検証されることはありません。
接線的には、クラスパスに hibernate-validator があり、プロパティで javax.validation.constraints を使用しようとしてい@Component
ます。
アプリケーション クラスには@Configuration
、@EnableAutoConfiguration
およびがあり@ComponentScan({"my.package.**"})
ます。
- Bean を使用して application.xml を追加する
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/>
- 上記のbeanをvalidator.xmlに追加して追記
@ImportResource("validator.xml")
@Bean
Application クラスにnew を追加します。public Validator validator() { return new LocalValidatorFactoryBean(); }
@Order(Ordered.HIGHEST_PRECEDENCE)
上記に追加@Bean
- スキャンしたパッケージにBeanValidator を追加
@Component
します。 - それに加え
@Order
て。
いずれの場合も、バリデーターは FilterRegistrationBean がビジネスのログ記録を終了した後にのみロードされますが、検証したい Bean は既に作成されており、データ接続やセキュリティの設定などに使用されています。
Spring を使用してから数年が経ちましたが、application.xml ですべてを定義するときにこれらの問題を覚えていません。これは単に spring-boot がサポートしていないものであり、従来の Spring アプリケーション構成に戻る必要がありますか?
すべての Bean を検証するにはどうすればよいですか?