使用javax.validation注释将空字符串转换为null
我为数据验证注释了以下变量:使用javax.validation注释将空字符串转换为null,java,validation,annotations,Java,Validation,Annotations,我为数据验证注释了以下变量: @Size(min=8, max=16, message="the size of the parameter must be between 8 and 16") private String param; 但是,参数可以为空。仅当其不为空时,才要求其长度为8-16个字符。我面临的问题是,如果客户端应用程序(JSONAPI)提供了一个空字符串,我想将其视为根本没有提供,即为null。我想知道是否有一种优雅的方法可以使用注释,即将空字符串转换为null,而不是我现
@Size(min=8, max=16, message="the size of the parameter must be between 8 and 16")
private String param;
但是,参数可以为空。仅当其不为空时,才要求其长度为8-16个字符。我面临的问题是,如果客户端应用程序(JSONAPI)提供了一个空字符串,我想将其视为根本没有提供,即为null。我想知道是否有一种优雅的方法可以使用注释
,即将空字符串转换为null,而不是我现在使用的普通Java方法:
public void setParameter(String _param) {
if(_param != null && !_param.trim().isEmpty()){
this.param = _param;
} else {
this.param = null;
}
}
我想要一个非常简单的setter:
public void setParameter(String _param) {
this.param = _param;
}
并通过注释完成is空字符串样板文件。有办法吗?您可以实现自己的自定义约束验证器
看这里。我已经用过很多次了,效果很好
您只需要在isValid方法中设置此条件(如果null返回“”,反之亦然)