私のStudentクラスでは、私はデータベースに格納するフィールドが多く、MultiPartFileデータ型を使用しているので、カスタムフィールドを使ってこのフィールドを検証しています。 。以下はカスタムBeanの検証が機能しない
私はこの
@InitBinder
protected void initBinderStudent(WebDataBinder binder) { binder.setValidator(photoValidator);
}
私の学生モデルがあるようにそれを実装していますコントローラで検証
@Component
public class PhotoValidator implements Validator{
@Override
public boolean supports(Class<?> clazz) {
return Student.class.isAssignableFrom(clazz);
}
@Override
public void validate(Object target, Errors errors) {
Student student=(Student)target;
if(student.getStudentPhoto()!=null){
if(student.getStudentPhoto().getSize()==0){
errors.rejectValue("file", "missing.file");
}
}
if(!student.getStudentPhoto().getOriginalFilename().endsWith(".jpg")){
errors.rejectValue("file", "invalid.file");
}
}
}
ためのコードである: -
@Entity
@Table(name = "STUDENT")
public class Student extends UrlEntity {
@Transient
MultipartFile studentPhoto;
@Column(name = "COURSE_TYPE", nullable = false)
@NotNull(message = "Course Type: Course Type can not be left blank")
private in.jmi.constants.CourseType courseType;
@OneToOne(cascade = CascadeType.ALL, optional = false)
@JoinColumn(name = "STUDENT_USER")
@Valid
private User user;
写真のこのカスタム検証私はここにいることになっている他の注釈ベースの検証を混乱させます。
私はstackoverflowで多くの投稿をチェックしましたが、この特定の問題との関連は見つかりませんでした。
注:コントローラから検証コードを削除すると、コードは正常に動作します。
私は上記のコードを別々に実装しています。これは、ここで私がこれを学んだウェブサイトですhttp://websystique.com/springmvc/spring-mvc-4-file-upload-example-using-commons- fileupload /、問題は私が実行しない私のアプリケーションで同じを実装するときです。 ==>私が達成したいのは、.jpgとそれが空のファイルであることを検証することです。 –