Почемуразрешить пробелы? - PullRequest
15 голосов
/ 30 ноября 2011

Когда я устанавливаю required="true" в <h:inputText>, он по-прежнему допускает пробелы. Я пытался изменить jsf-api.jar, но я не мог понять, как создать новый JAR-файл, поэтому я попытался изменить метод isEmpty() из класса UIInput и скомпилировать его, открыть jsf-api.jar и заменить его на новый, но он не работал.

Мне нужно сделать trim(), когда пользователь пишет в <h:inputText>, чтобы не допустить пробелов. Как мне этого добиться?

Если вы хотите загрузить ресурс jsf-api.jar, вы можете это сделать, просто прочитайте, как это сделать: http://javaserverfaces.java.net/checkout.html.

Ответы [ 2 ]

43 голосов
/ 30 ноября 2011

Это нормальное и естественное поведение, а не специфическое для 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.Это не имеет смысла.

9 голосов
/ 10 декабря 2012

Если вы хотите отключить поведение, которое BalusC отмечает как один из ответов в качестве стандартного поведения JSF, вы можете изменить файл web.xml и включить следующее.

<context-param>
   <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
   <param-value>true</param-value>
<context-param>

Это заставит платформу JSF учитывать значения null, которые могут быть предпочтительнее, или альтернативу ответу от BalusC.

...