Ola pessoal, estou desenvolvendo um aplicação webwork e estou querendo validar data utilizando um DateConverter
estou utilizando o seguinte codigo para o DateConverter:
public class DateConverter extends DefaultTypeConverter {
private static final Logger log = Logger.getLogger(DateConverter.class);
private String pattern = "dd/MM/yyyy";
private Date parse(Object object) {
DateFormat sdf = new SimpleDateFormat(pattern);
Date d = null;
try {
sdf.setLenient(false);
d = sdf.parse((String) object);
} catch (ParseException e) {
if ( log.isDebugEnabled() ) {
log.debug("DateConverter - [parse]: Exception catched when parsing - " + e.getMessage());
}
throw new RuntimeException(e);
}
return d;
}
public Object convertValue( Map map, Object object, Class aClass ) {
Object o = null;
if ( object instanceof Object[] ) {
if ( ( (Object[]) object ).length > 0 ) {
o = ( (Object[]) object )[0];
}
} else {
o = object;
}
if ( aClass == java.util.Date.class ) {
return parse(o);
} else {
//to String
DateFormat sdf = new SimpleDateFormat(pattern);
return sdf.format(object);
}
}
public Object convertValue( Map map, Object o, Member member, String s, Object o1, Class aClass ) {
return this.convertValue(map, o1, aClass);
}
}
Estou adicionando a seguinte linha no xwork-conversion.properties
java.util.Date=com.yourpackage.DateConverter
O conversor funciona corretamente. se eu digito qualquer coisa que nao seja uma data valida ele limpa o campo. Para mim, não basta que o DateConverter faça a validação do campo. Gostaria que ele tambem mostrasse uma mensagem de erro para o usuario.
Alguem sabe como eu faço isso?
Flavio Oliva