4

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

<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>

支持豆,

final public class CategoryBean
{
     private MultipartFile txtCatImage=null;

     public MultipartFile getTxtCatImage()
     {
          return txtCatImage;
     }

     public void setTxtCatImage(MultipartFile txtCatImage)
     {
         this.txtCatImage = txtCatImage;
     }
}

我试图应用注释,@NotEmpty但没有奏效。他们以一个例外告终。

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

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

4

2 回答 2

3

现在,我了解您要具体完成的工作。好吧,您可以实现自己的自定义验证。例如,不是实现 Spring 验证器接口,而是实现一个 Hibernate ConstraintValidator,用于您为此特定情况定义的特定注释。检查此链接@NotNull在这种情况下,您可以为对象的验证器添加实现MultipartFile

于 2012-12-06T04:36:04.000 回答
3

对空的bean方法检查文件施加约束对我有用:

final public class CategoryBean
{
  private MultipartFile txtCatImage = null;
  public MultipartFile getTxtCatImage() { return txtCatImage; }
  public void setTxtCatImage(MultipartFile txtCatImage) { this.txtCatImage = txtCatImage; }

  @AssertTrue(message = "File must be provided")
  public boolean isFileProvided() {
    return (txtCatImage != null) && ( ! txtCatImage.isEmpty());
  }
}
于 2013-12-10T11:03:51.157 回答