【问题标题】:About a checkbox on datatable关于数据表上的复选框
【发布时间】:2011-06-24 04:47:44
【问题描述】:

我想像这样在数据表上使用复选框:

 <h:selectBooleanCheckbox styleClass="selectBooleanCheckbox" valueChangeListener="#{CompletedInventoriesBean.changeUID}" value="#{CompletedInventoriesBean.isChecked(userinventorieswithuser.id)}" id="chkUser">
           <f:ajax event="change" process="chkUser"></f:ajax>
</h:selectBooleanCheckbox>

我的 uid 在会话中。我想用户点击复选框,我在会话中添加或删除该 ID。

没有问题,我可以处理会话中的值一个 bean。

但在点击复选框时,我收到如下 JavaScript 警报:

serverError: 类 javax.faces.component.UpdateModelExcepton/sections/completed.xhtml @29,244 value="#{CompletedInventoriesBean.isChecked(userinventorieswithuser.id)}": 在 main.com.brad.services.CompletedInventoriesBean 类型上找不到属性“isChecked”

我的 isChecked 方法是这样的:

public boolean isChecked(int z) {
    boolean exist = false;
    for(int i=0; i < selectedSessionUI.getSessionInventories().size(); i++) {
        if (selectedSessionUI.getSessionInventories().get(i) == z) exist = true;
    }
    return exist;
}

为什么我会收到此警报?这是我停留在那个页面的唯一想法。

提前致谢

【问题讨论】:

    标签: java jsf datatable


    【解决方案1】:

    您不能将value 属性绑定到采用参数的方法。它应该绑定到一个由纯 getter 和 setter 表示的属性。

    在这种特殊情况下,您更愿意使用Map&lt;Long, Boolean&gt;

    private Map<Long, Boolean> checked = new HashMap<Long, Boolean>();
    
    @PostConstruct
    public void init() {
        for (int id : selectedSessionUI.getSessionInventories()) {
            checked.put(Long.valueOf(id), true);
        }
    }
    
    public Map<Long, Boolean> getChecked() {
        return checked;
    }
    

    结合

    <h:selectBooleanCheckbox value="#{CompletedInventoriesBean.checked[userinventorieswithuser.id]}">
    

    要收集所有选中的行,只需在 action 方法中循环 checked 映射。

    (不需要设置器,因为[] 将在Map 本身上使用put()get()

    【讨论】:

    • 我无话可说谢谢你。你只是给了我我真正想要的东西。你让我更好地理解了这件事。我非常感激。
    【解决方案2】:

    您收到此错误是因为您无法将参数传递给 valueChangeListener 方法。 here回答了与此类似的问题。

    更多信息请见under this link

    【讨论】:

      猜你喜欢
      • 2013-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-23
      • 2020-07-08
      • 1970-01-01
      • 2014-11-26
      • 2019-11-29
      相关资源
      最近更新 更多