JSF2 преобразован и требуется на том же входе - PullRequest
0 голосов
/ 05 марта 2012

У меня проблема с конвертерами и валидаторами.

У меня есть входной текст, который принимает список CSV.У меня есть конвертер, который превращает его в список строк.Это все отлично работает.Хотя я хочу сделать поле обязательным.Но с конвертером он, кажется, игнорирует любой прикрепленный мной валидатор, а также обязательный атрибут на входе.

Я попытался решить эту проблему, выдав исключение конвертера, если значение пустое.Это почти работает, хотя становится все сложнее, так как у меня есть радиогруппа чуть выше, чем в форме с немедленным = true.Немедленно пропускает валидатор очень хорошо, хотя, кажется, все еще пытается конвертер.Следующая лучшая вещь, о которой я могу подумать, - это проверить в своем действии и добавить сообщение лиц вручную, но я бы предпочел этого избежать, поскольку мне придется жестко кодировать идентификатор клиента в классе Java.

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

1 Ответ

1 голос
/ 05 марта 2012

Преобразователь вызывается перед валидаторами.

Внутри конвертера вам просто нужно вернуть null, когда переданное значение равно null или пустой строке.

@Override
public String getAsObject(FacesContext context, UIComponent component, Object value) {
    if (value == null || ((String) value).isEmpty()) {
        return null;
    }

    // ...
}

Вы не должны выдавать исключение конвертера, когда значение равно нулю или пусто. Таким образом, валидаторы не будут уволены. В конце концов, преобразователь не должен проверять значение, он должен только преобразовывать значение.

...