Kar*_*ian 0 java json web-services string-length annotated-pojos
我有一个像下面这样的 POJO 类,
@XmlRootElement
public class JsonReply {
@XmlElement(nillable = false)
String callResult;
@XmlElement(nillable=false)
String returnobj;
@NotNull
String callError;
public String getCallResult() {
return callResult;
}
public void setCallResult(String callResult) {
this.callResult = callResult;
}
public String getCallError() {
return callError;
}
public void setCallError(String callError) {
this.callError = callError;
}
Run Code Online (Sandbox Code Playgroud)
为了避免空字符串,我使用了许多注释,例如 Lombok 的 @NotNull 和 javax.xml.bind.annotation.XmlRootElement 的 @XmlElement(nillable=false)。我的问题是,是否有任何其他方式或注释来限制整数或字符串的长度,例如 min=5 和 max=10。
@Size(max=10)
@Max(5)
Integer sampleint;
Run Code Online (Sandbox Code Playgroud)
我正在使用杰克逊。如果杰克逊本身有任何注释,比如@JsonIgnoreProperties,那就很好了。
谢谢!
你可以考虑Bean Validation。它基于注释并与各种框架集成。参考实现是Hibernate Validator。
以下是一些可能对您有用的重点:
对于String验证,您可能感兴趣的现成注释是@Size.
对于数字的验证,可以考虑@Min,@Max,@DecimalMin,@DecimalMax和@Digits。
用于@NotNull不接受null值。
有关更多详细信息,请检查javax.validation.constraints包装。
Jersey 2.x 中的 Bean 验证支持作为扩展模块提供,需要在您的pom.xml文件中明确提及(在使用 Maven 的情况下):
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-bean-validation</artifactId>
<version>2.23.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
如果您不使用 Maven,请确保jersey-bean-validation在类路径上也具有所有可传递的依赖项(请参阅工件)。该模块直接依赖于 Hibernate Validator,它提供了 Bean Validation 规范的最常用实现。
在 Jersey 中,Bean Validation 模块是一个可自动发现的功能,也就是说,它是您不需要在服务器上显式注册它的Features( ValidationFeature)的模块之一,因为它的功能会在您添加时自动发现和注册jersey-bean-validation模块到您的类路径。
有关更多详细信息,请查看有关 Bean 验证支持的Jersey 文档。
| 归档时间: |
|
| 查看次数: |
7803 次 |
| 最近记录: |