получение нескольких значений из поля inputText, разделенных запятыми в JSF - PullRequest
0 голосов
/ 12 декабря 2011

Я проектирую почтовую клиентскую систему с использованием JSF Framework . Пользовательский интерфейс должен иметь возможность принимать несколько адресов получателей в одном и том же поле inputText, каждое из которых разделено запятыми (,). Как я могу достичь этого?

1 Ответ

3 голосов
/ 13 декабря 2011

Согласно комментариям:

Могу ли я присвоить атрибуту значения поля inputText массив?

Вы могли бы реализовать Converter для этого.

@FacesConverter("commaSeparatedFieldConverter")
public class CommaSeparatedFieldConverter implements Converter {

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

        String[] strings = (String[]) value;
        StringBuilder builder = new StringBuilder();

        for (String string : strings) {
            if (builder.length() > 0) {
                builder.append(",");
            }

            builder.append(string);
        }

        return builder.toString();
    }

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

        return value.split(",");
    }

}

Используйте его следующим образом:

<h:inputText value="#{bean.addresses}" converter="commaSeparatedFieldConverter" />

с

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