如何使用 HibernateValidator 验证 MultipartFile?

Tin*_*iny 4 validation spring hibernate multipartform-data hibernate-validator

我在支持 bean 中有一个类型字段MultipartFile,它绑定到 Spring 表单(我正在使用MultipartFilter),

<form:form htmlEscape="false" action="${pageContext.request.contextPath}/admin_side/Category.htm" id="dataForm" name="dataForm" method="post" commandName="categoryBean" enctype="multipart/form-data">

    <input type="file" id="txtCatImage" name="txtCatImage"/>

</form:form>
Run Code Online (Sandbox Code Playgroud)

支撑豆,

final public class CategoryBean
{
     private MultipartFile txtCatImage=null;

     public MultipartFile getTxtCatImage()
     {
          return txtCatImage;
     }

     public void setTxtCatImage(MultipartFile txtCatImage)
     {
         this.txtCatImage = txtCatImage;
     }
}
Run Code Online (Sandbox Code Playgroud)

我尝试过应用注释,@NotEmpty但没有成功。他们最终得到了一个例外。

javax.validation.UnexpectedTypeException:找不到类型的验证器:org.springframework.web.multipart.MultipartFile

我正在使用验证 API 1.0.0。如果用户没有上传文件并使用HibernateValidator按提交按钮,是否可以执行验证?

Ang*_*ain 5

现在我明白你具体想要实现什么目标了。那么您可以实现自己的自定义验证。例如,对于ConstraintValidator您为此特定情况定义的特定注释,不实现 Spring 验证器接口,而是实现 Hibernate 。检查此链接@NotNull在这种情况下,您可以为对象添加验证器的实现MultipartFile