2016-08-17 37 views
1

看起來驗證的查詢參數是不工作的,但對於車身驗證工作(使用@POST)澤西 - 驗證工作不用於查詢帕拉姆

@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嗯似乎你是正確的。任何想法爲什麼驗證沒有在之前/什麼是正確的答案工作? –

+0

我不能說沒有更多的細節。 @richersoon我看到你接受了答案,它是否真的有效的註釋和沒有沒有? – marians27