4

SpringフォームにバインドされているバッキングBeanにタイプのフィールドがありますMultipartFile(私は使用してい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>

バッキングビーン、

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

Validation-API1.0.0を使用しています。ユーザーがファイルをアップロードせず、HibernateValidatorを使用して送信ボタンを押した場合、これで検証を実行できますか?

4

2 に答える 2

3

空のメソッドチェックファイルに制約を課すことは私にとってはうまくいきました:

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 に答える
3

今、私はあなたが具体的に達成しようとしていることを理解しています。独自のカスタム検証を実装できます。たとえば、Spring バリデーター インターフェースを実装する代わりに、ConstraintValidatorこの特定のケース用に定義した特定のアノテーションに対して Hibernate を実装します。このリンクを確認してください。この場合、オブジェクトの@NotNullバリデーターの実装を追加できます。MultipartFile

于 2012-12-06T04:36:04.000 に答える