Как связать данные со списком флажков в JSF? - PullRequest
1 голос
/ 05 апреля 2011

У меня на экране редактирования пользователя следующий код

<h:selectManyCheckbox id="selectedGroups" value="#{usersController.selectedGroups}">
                <f:selectItems value="#{usersController.groupsList}" var="item" itemLabel="#{item.groupname}" itemValue="#{item.groupid}" />
            </h:selectManyCheckbox>

У меня есть список групп пользователей со всеми группами в нем, и я выбрал список групп с группами, которые включены для пользователя. Но на экране редактирования они не показывают выбранные по умолчанию. Что мне не хватает? Разве это не правильный способ привязать выбранные флажки?

Ответы [ 2 ]

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

Значение элемента groupsList будет предварительно выбрано, только если метод equals() вернул true хотя бы для одного элемента в selectedGroups.

Предполагая, что groupid является Long, тогда selectedGroups должен вернуть List<Long>, содержащий значения, которые должны быть предварительно выбраны.

0 голосов
/ 06 апреля 2011

Следующий код будет отлично работать для bean области действия запроса ...

xhml code ....

 <h:selectManyCheckbox binding="#{Page1.chk_1}">
        <f:selectItem binding="#{Page1.chk_1_options}"/>
 </h:selectManyCheckbox>

Java code ....

HtmlSelectManyCheckbox chk_1 = new HtmlSelectManyCheckbox();
UISelectItems chk_1_options = new UISelectItems();

public HtmlSelectManyCheckbox getChk_1() {
    return chk_1;
}

public void setChk_1(HtmlSelectManyCheckbox chk_1) {
    this.chk_1 = chk_1;
}

public UISelectItems getChk_1_options() {
    if (chk_1_options.getValue() == null) {
        List<SelectItem> lst_chk_options = new ArrayList<SelectItem>();
        lst_chk_options.add(new SelectItem(1, "Label1"));
        lst_chk_options.add(new SelectItem(2, "Label2"));
        chk_1_options.setValue(lst_chk_options);
    }
    return chk_1_options;
}

public void setChk_1_options(UISelectItems chk_1_options) {
    this.chk_1_options = chk_1_options;
}

Если вы хотите для области видимости сеанса, то ответьте, потому что элементы привязки в области видимости сеанса создают проблемы в некоторых случаях ...

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