所以,这是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中)。
答案 0 :(得分: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
}
来到你的问题: 变量&#34;#{backingBean.value}&#34;的值如果为true,则将选中该复选框