Я новичок в Spring, и мне любопытно, как подойти к проверке ввода формы с источником данных. Я использую Spring 3.0.3, кстати. Допустим, у меня есть следующая форма:
public class MyForm {
private String format;
public String getFormat() {
return format;
}
public void setFormat( value:String ) {
format = value;
}
}
Теперь допустим, что свойство format
является строковым представлением формата файла: «jpg», «png», «gif», «bmp» и т. Д. Естественно я подумал написать валидатор для формы. Это выглядит примерно так:
public class MyFormvalidator implements Validator
{
@Override
public boolean supports( Class<?> clazz ) {
return MyForm.class.equals( clazz );
}
@Override
public void validate( Object obj, Errors errors ) {
MyForm myForm = (MyForm) obj;
ValidationUtils.rejectIfEmptyOrWhitespace( errors, "format", "error.required" );
if( !myForm.getFormat().equals( "jpg" ) &&
!myForm.getFormat().equals( "png" ) &&
.... etc .... ) {
errors.rejectValue( "format", "error.invalid" );
}
}
}
Так что все в порядке, но допустим, я хочу добавить новые поддерживаемые форматы без необходимости настраивать мой валидатор, перекомпилировать и развертывать его. Вместо того, чтобы войти в базу данных, а что нет, давайте сделаем это проще с небольшим файлом XML, который можно изменить. Это будет выглядеть примерно так:
<?xml version="1.0" encoding="UTF-8"?>
<fileformats>
<item>jpg</item>
<item>png</item>
.... etc ....
</fileformats>
И, наконец, реальный смысл всего этого ... каким должен быть мой подход к предоставлению этих данных во время проверки ввода формы?