如果某人已上传文件,我该如何进行验证

时间:2015-01-11 05:51:18

标签: java spring-mvc

我收到此错误消息。

  

javax.validation.UnexpectedTypeException:HV000030:没有验证器可以   找到类型:byte []。

代码是

@NotBlank(message = DocumentForm.NOT_BLANK_MESSAGE)
private byte[] file;

如果某人上传了文件,我该如何进行验证

2 个答案:

答案 0 :(得分:1)

我不知道哪个注释可用于字节数组(如果有的话)。但是,您可以毫不费力地实现自己的验证器。

类似的东西:

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");
        }
    }
}

答案 1 :(得分:1)

@NotBlank适用于字符串。它也不是该标准的一部分。你可能想和@NotNull一起去。它只检查文件是否在那里,而不是它是否为空。如果这也是必要的,您可以使用@Size(min = 1)