2015-09-09 113 views
3

我在Java中使用Jersey作爲簡單的Web服務器。我試圖處理與URL查詢參數,如用澤西島查詢參數驗證

/path?value1=X&value2=Y&value3=Z 

我能夠通過使用@QueryParam註釋提取查詢值一樣

@GET 
@Produces(MediaType.APPLICATION_XML) 
@Path("/path") 
public String getUpdate(@QueryParam("All") List<String> allParam, 
     @QueryParam(value = "value1") String value1, 
     @QueryParam(value = "value2") String value2, 
     @QueryParam(value = "value3") String value3) { 
     ... 
} 

現在我的問題是我需要驗證輸入。我主要試圖確保value1,value2和value3遵循特定的格式。我也想確保這些參數不是空的。

我檢查了澤西島的Bean驗證文檔,但它似乎很難遵循。這可能是因爲我對Jersey框架還是有點新鮮感。

那麼如何設置查詢參數驗證?是否更容易遵循我可以指導的資源/例子?謝謝

回答

6

由於@ VA31鏈接,如果你的球衣足夠新,你可以使用像這樣的bean驗證。

@GET 
@Produces(MediaType.APPLICATION_XML) 
@Path("/path") 
public Response getUpdate(
    @QueryParam("value1") 
    @NotNull 
    @Size(min = 1, max = 255) 
    @Pattern(regexp = "\\d+") 
    String value1, 
    @QueryParam("value2") 
    @Min(52) 
    @Max(53) 
    int value2, 
    @QueryParam("value3") 
    @NotNull 
    Integer value3) { 


} 
+0

如果所需的驗證結果爲假,球衣是否會提出錯誤的請求? –

+0

@PratikSinghal是的! '400'將會被反應直觀的信息。 –