Проверка JSF для обязательных полей - PullRequest
0 голосов
/ 28 апреля 2011

Допустим, у нас есть форма с некоторыми полями обязательные , а некоторые нет ( необязательно ).
Теперь, когда мы говорим, что поле обязательно для заполнения, валидатор будет проверять только длинуввод, но не сначала обрезать ввод, а затем проверить.

Чтобы решить эту проблему, я написал функцию javascript, вызываемую при отправке формы.Но это также проверит необязательные поля.

Добавление конвертера ко всем полям ввода не изящно.
Также есть их способ переопределить обязательный процесс проверки.
Или как мне определить необязательное поле ввода в javascript .

Итак, как правильно это сделать.

с использованием JSF 1.2

1 Ответ

1 голос
/ 28 апреля 2011

Если вы зарегистрируете преобразователь на <converter-for-class> вместо <converter-id>, тогда он будет применяться ко всем типам значений.

<converter>
    <converter-for-class>java.lang.String</converter-for-class>
    <converter-class>com.example.EmptyToNullConverter</converter-class>
</converter>

с

public class EmptyToNullConverter implements Converter {

    @Override
    public Object getAsObject(FacesContext facesContext, UIComponent component, String value) {
        if (value == null || value.trim().length() == 0) {
            if (component instanceof EditableValueHolder) {
                ((EditableValueHolder) component).setSubmittedValue(null);
            }
            return null;
        }
        return value;
    }

    @Override
    public String getAsString(FacesContext facesContext, UIComponent component, Object value) {
        return value == null ? null : value.toString();
    }

}

Нет необходимости регистрировать его для каждого компонента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...