2016-08-17 4 views
1
機能していないそれは、クエリのParamの検証のように見えます

のために働いていないが、ボディのための検証が働いている(使用@POST)ジャージー - 検証はクエリのParam

@GET 
@Path("{id}") 
public Foo get(@PathParam("id") Integer id, 
       @NotNull @QueryParam("param1") Integer param1) { 
.... 
} 

のpom.xml

<dependency> 
     <groupId>org.glassfish.jersey.containers</groupId> 
     <artifactId>jersey-container-servlet</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.ext</groupId> 
     <artifactId>jersey-bean-validation</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.media</groupId> 
     <artifactId>jersey-media-json-jackson</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.media</groupId> 
     <artifactId>jersey-media-sse</artifactId> 
    </dependency> 

答えて

1

検証をトリガーするには、@Valid注釈をパラメーターに追加します。

@GET 
@Path("{id}") 
public Foo get(@PathParam("id") Integer id, 
       @Valid @NotNull @QueryParam("param1") Integer param1) { 
.... 
} 
+0

Validで有効性が示されたオブジェクトの内部プロパティが有効になるように、検証カスケードが有効です。これは正解ではありません。 https://jersey.java.net/documentation/latest/bean-validation.html#d0e13614 – marians27

+0

@ marians27 hmあなたが正しいようです。を参照してください。前に検証がうまくいかなかった理由/正解は何ですか? –

+0

私は詳細を言わないと言うことはできません。 @richersoon私はあなたが答えを受け入れるのを見ます、それは本当に有効な注釈で動作しますか? – marians27

関連する問題