Это нормальное и естественное поведение, а не специфическое для JSF.Пробел может быть совершенно допустимым вводом.required="true"
включается только на пустых входах, а не на заполненных.Однако в JSF вы можете просто создать класс Converter
для String
, чтобы автоматически обрезать пробелы.
@FacesConverter(forClass=String.class)
public class StringTrimmer implements Converter {
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
return value != null ? value.trim() : null;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
return (String) value;
}
}
Поместите этот класс где-нибудь в своем проекте.Он будет зарегистрирован автоматически благодаря @FacesConverter
и будет автоматически вызываться для каждой записи String
благодаря forClass=String.class
.
Нет необходимости для взлома JSF API / impl.Это не имеет смысла.