如何在支持bean中获取h:selectBooleanCheckbox的ID属性

问题描述 投票:0回答:1

所以,这是jsf组件:

<h:selectBooleanCheckbox id="cb#{index}" value="#{backingBean.value}" />

这是支持bean java的一部分:

/**
 * getValue is a method which checks if a checkbox is selected or not, using the checkbox ID
 */
public boolean getValue() { 
  //TODO: get the checkbox id
  String checkboxID = ??

  if (getCheckedIDs().contains(checkboxID)) {
    return true;
  }

  return false;
}

当页面加载复选框时,如果选中复选框,我想以这种方式检查。所以问题是,写什么而不是?获取调用该方法的复选框的ID?我只能使用JSF 1.1非常重要,因此有许多解决方案不适用于此版本。 另一个非常重要的事情是,我不能像这里一样在后台bean中使用setter / getter:https://stackoverflow.com/a/48006066/9158590,因为我需要在选中或取消选中后立即存储复选框的值,而不仅仅是在提交之后。我已经在检查后立即解析了在backing bean中的存储,我只需要在加载页面时发回true或false。 这是因为我使用页面导航,例如,当我在第1页中选中一个框并转到另一个页面然后返回时,不再选中该框(仅在辅助bean中)。

jsf backing-beans selectbooleancheckbox jsf-1.1
1个回答
0
投票
   FacesContext context = FacesContext.getCurrentInstance();
   UIComponent comp = context.getViewRoot().findComponent("Parent Element 
   id of HtmlSelectBooleanCheckbox ");
   for(UIComponent c : comp.getChildren())
    if(c instanceof HtmlSelectBooleanCheckbox)
   {
   // do something
   }

来到您的问题:变量“#{backing Bean.value}”的值为true,然后将选中该复选框

© www.soinside.com 2019 - 2024. All rights reserved.