JSF Повторите nog, показывая значение в флажке - PullRequest
0 голосов
/ 21 ноября 2011

Я передаю хэш-карту, состоящую из объекта + логическое значение, в мое представление, и я хочу отобразить значение логического значения для каждого объекта и в настоящее время иметь следующий код:

<ui:repeat var="item" value="#{userTypeController.permissionItems}">
                    <h:outputText value="#{item}" />
                    <h:selectBooleanCheckbox value="#{userTypeController.checkMap[item]}"/>
    </ui:repeat>

И метод Hashmap:

    public Map<Permission, Boolean> getCheckMap() {
    checkMap = null;
    for (Permission p : getPermissionItems()) {
        if (getPermissionItemsUserType().contains(p))
            checkMap.put(p, Boolean.TRUE);
        else
            checkMap.put(p, Boolean.FALSE);
        System.out.println(checkMap.get(p).toString());
    }
    return checkMap;
}

Это должно работать, и во время system.out.println я вижу настоящий вывод ...

Однако сами флажки никогда не проверяются ... Есть идеи, что я здесь не так делаю?

1 Ответ

0 голосов
/ 21 ноября 2011

Симптомы, которые вы описываете, соответствуют Ошибка Мохарры 1807 , которая по стечению обстоятельств была исправлена ​​в 2.1.1 и была официально исправлена ​​в 2.1.4. Итак, обновление Моджарра до версии 2.1.1 должно подойти.

Обратите внимание, что в вашем коде есть серьезная ошибка. Вы нигде не создаете экземпляр checkmap, это выкинет NullPointerException, хотя это, кажется, упрощает код вопроса. Кроме того, делать это внутри геттера - плохая идея. Это должно быть сделано во время (post) конструкции или метода прослушивателя событий. Во время ответа рендера геттер может быть вызван несколько раз. См. Также Почему JSF вызывает геттеры несколько раз .

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