Извините за поздний пост, но вот что вы должны сделать. Spring Webflow выполняет пользовательскую привязку данных. Это похоже на то, как Spring MVC делает это. Разница, однако, в том, где он это обрабатывает. Spring MVC обрабатывает это на уровне контроллера (используя @InitBinder).
Spring webflow делает это на уровне привязки. Перед выполнением веб-потока перехода связывает все значения параметров с объектом, затем проверяет форму (если validate = "true"), а затем вызывает переход при успешной проверке.
То, что вам нужно сделать, - это заставить веб-поток изменить средства привязки даты. Вы можете сделать это, написав собственный конвертер.
Сначала вам понадобится услуга конвертации:
@Component("myConversionService")
public class MyConversionService extends DefaultConversionService {
public void MyConversionService() {
}
}
Webflow будет использовать этот сервис для определения того, какую специальную привязку необходимо учитывать. Теперь просто напишите свой конкретный механизм связывания даты (имейте в виду, что по умолчанию для веб-потока используется механизм связывания даты, который вы просто переопределите).
@Component
public class MyDateToString extends StringToObject {
@Autowired
public MyDateToString(MyConversionService conversionService) {
super(Date.class);
conversionService.addConverter(this);
}
@Override
protected Object toObject(String string, Class targetClass) throws Exception {
try{
return new SimpleDateFormat("MM\dd\yyyy").parse(string);//whatever format you want
}catch(ParseException ex){
throw new ConversionExecutionException(string, String.class, targetClass, Date.class);//invokes the typeMissmatch
}
}
}