我收到这个错误信息。javax.validation.UnexpectedTypeException:HV000030:找不到类型:byte[]的验证器。代码
@NotBlank(message = DocumentForm.NOT_BLANK_MESSAGE) private byte[] file;
字符串如果有人上传了一个文件,我该如何验证
8dtrkrch1#
@NotBlank用于字符串。它也不是标准的一部分。你可能想使用@NotNull。它只检查文件是否在那里,但是,如果它是空的。如果有必要,你也可以使用@Size(min = 1)。
@NotBlank
@NotNull
@Size(min = 1)
ldxq2e6h2#
我不知道字节数组有什么注解,但是,你可以实现你自己的验证器,没有太多的麻烦。比如说:
public class ModelWithFileFieldValidator implements Validator { public boolean supports(Class clazz) { return ModelWithFileField.class.equals(clazz); } public void validate(Object obj, Errors e) { byte[] field = ((ModelWithFileField)obj).getBytes(); if (field == null || field.length == 0) { e.rejectValue("file", "empty"); } } }
字符串
wkyowqbh3#
它可以通过使用@NotEmpty来完成。它是@ NotEmpty和size/length > 0的组合@NotEmpty = @ Notempty && size/length > 0
@NotEmpty(message = DocumentForm.NOT_BLANK_MESSAGE) private byte[] file;
字符串https://www.baeldung.com/java-bean-validation-not-null-empty-blank
3条答案
按热度按时间8dtrkrch1#
@NotBlank
用于字符串。它也不是标准的一部分。你可能想使用@NotNull
。它只检查文件是否在那里,但是,如果它是空的。如果有必要,你也可以使用@Size(min = 1)
。ldxq2e6h2#
我不知道字节数组有什么注解,但是,你可以实现你自己的验证器,没有太多的麻烦。
比如说:
字符串
wkyowqbh3#
它可以通过使用@NotEmpty来完成。它是@ NotEmpty和size/length > 0的组合
@NotEmpty = @ Notempty && size/length > 0
字符串
https://www.baeldung.com/java-bean-validation-not-null-empty-blank