2014-07-10 31 views
1

我在閱讀以下驗證應該與JAX-RS 2.0一起使用。JAX-RS 2.0驗證

public Response getEvent(@PathParam("lagdays") 
           @Pattern(regexp = "[0-7]", message = "Lag Days must be between 0 and 7") 
           Integer lagDays, 
           @Context HttpServletResponse res) { 

不過,我得到如下所示的消息時,我運行它

HV000030: No validator could be found for type: java.lang.Integer. 

我怎麼能確定JAX-RS,我上的是什麼版本?我查看了我的pom文件,但沒有看到JAX-RS的任何內容。我正在使用Java 7.我在考慮不使用JAX-RS 2.0,或者我在某處出現語法錯誤。

<dependency> 
     <groupId>javax.validation</groupId> 
     <artifactId>validation-api</artifactId> 
     <version>1.1.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-codec</groupId> 
     <artifactId>commons-codec</artifactId> 
     <version>1.7</version> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.ext</groupId> 
     <artifactId>jersey-bean-validation</artifactId> 
     <version>2.4.1</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-validator</artifactId> 
     <version>5.0.1.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.annotation</groupId> 
     <artifactId>javax.annotation-api</artifactId> 
     <version>1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>javax</groupId> 
     <artifactId>javaee-api</artifactId> 
     <version>7.0</version> 
     <scope>provided</scope> 
    </dependency> 

回答

3

據我所知,@Pattern僅在CharSequence S(link)有效。如果你想讓你的號碼在一個範圍內,請使用@Min@Max