JSF обрезка пробелов - PullRequest
       20

JSF обрезка пробелов

7 голосов
/ 08 января 2010

HI

У меня есть поле ввода, в котором я хочу обрезать любые пробелы в начале / конце. Мы используем JSF и привязываем поле ввода к базовому компоненту в jsp, используя:

<h:inputText id="inputSN" value="#{regBean.inputSN}" maxlength="10"/>

Мой вопрос заключается в том, что помимо проверки это может быть сделано в JSP? Я знаю, что мы также можем сделать это, используя java-функцию trim () в Handler, но мне просто интересно, есть ли более элегантный способ добиться этого в JSF.

Спасибо.

Ответы [ 4 ]

6 голосов
/ 08 января 2010

Вы можете использовать конвертер ( учебник ).

4 голосов
/ 29 июля 2014

Как предлагают McDowell и BalusC, вы можете создать конвертер и зарегистрировать его с аннотацией @FacesConvert для класса String. Затем в методе getAsObject проверьте тип UIComponent и примените усечение только для компонентов HtmlInputText.

@FacesConverter(forClass = String.class)
public class StringTrimConverter implements Serializable, javax.faces.convert.Converter {

    @Override
    public Object getAsObject(FacesContext context, UIComponent cmp, String value) {

        if (value != null && cmp instanceof HtmlInputText) {
            // trim the entered value in a HtmlInputText before doing validation/updating the model
            return value.trim();
        }

        return value;
    }

    @Override
    public String getAsString(FacesContext context, UIComponent cmp, Object value) {

        if (value != null) {
            // return the value as is for presentation
            return value.toString();
        }
        return null;
    }

}
2 голосов
/ 21 сентября 2010

Я ответил на аналогичный вопрос здесь

По сути, вы можете создать свой собственный компонент, который является копией inputText, который автоматически обрезается, или вы можете расширить inputText и добавить атрибут trim, который обрезается, если true.

1 голос
/ 16 марта 2010

Я решил это, просто используя функцию trim () в обработчике перед выполнением какой-либо обработки. Казалось, это самый простой способ сделать это.

...