0

は言うことができます、私は豆の下に持っている私は、エントリポイント法で@Valid入れている@RequestBody春REST @RequestBody検証特定の順序で一つだけのグループ必須フィールドの

public class MyRequestBean extends RequestBean { 

    private static final long serialVersionUID = 1L; 

    private String lastName ; 
    private String firstName ; 
    private String ssnNumber; 
    private String groupCd; 

} 

を使用して、私のコントローラの入力方法で取得すること横に - @RequestBody。その空またはnullの場合 - - 何かを検証する必要はありません

私は

  1. ssnNumber、二つのことを達成しようとしていますが、絶対必須フィールドです。エラーメッセージを返すだけです。

  2. ssnNumberが有効である場合には三つのフィールドのいずれかの場合には、参照 - firstNamelastNamegroupCd@NotNull & @NotEmptyで有効です。いずれかのフィールドが存在する場合は、要求を処理します。

どうすればこの問題を解決できますか?私は、検証目的のためにこれら二つの依存関係を使用しています

<dependency> 
      <groupId>javax.validation</groupId> 
      <artifactId>validation-api</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
</dependency> 

検証APIがある - 1.1.0.Final &にHibernate Validatorはある - 5.3.4.Final

EDIT :可能な重複リンクはJSONフィールドオーダーについて話しています。私の場合は、フィールドオーダーは関係ありません。フィールド検証の順序について。何か不足していますか?

+0

可能な重複を - オブジェクトのプロパティのシリアル化順序を指定する](http://stackoverflow.com/questions/27577701/jackson-objectmapper-specify-serialization-order-of-object-properties) –

+0

重複ではなく、要求するBeanに関連するJSONフィールドの順序がある検証?何か不足していますか? –

答えて

0

アノテーションを使用してフィールド検証を行う方法が見つかりませんでした。

私は最終的に実装することにより、MyValidatorクラス - 私のカスタムバリデータを書かなければならなかった - [ジャクソンObjectMapperのorg.springframework.validation.Validator、そこに私の注文したロジックを記述して、コントローラクラスで、そのコントローラのためのそのバリデータを追加し、

@InitBinder 
    public void globalInitBinder(WebDataBinder binder) { 
     binder.addValidators(new MyValidator()); 
    } 
関連する問題