我正在使用 primefaces 3.5 。
我有一个 HtmlPanelGrid 来显示一个包含复选框列表的弹出窗口。但是弹出窗口没有出现。
private List<String> selectedList;
public List<String> getSelectedList() {
return selectedList;
}
public void setSelectedList(List<String> selectedList) {
this.selectedList = selectedList;
}
public HtmlPanelGrid populateAccessesPanel() {
final FacesContext facesContext = FacesContext.getCurrentInstance();
final Application application = facesContext.getApplication();
final ExpressionFactory expressionFactory = application
.getExpressionFactory();
final ELContext elContext = facesContext.getELContext();
final HtmlPanelGrid htmlPanelGrid = (HtmlPanelGrid) application
.createComponent(HtmlPanelGrid.COMPONENT_TYPE);
final OutputLabel checkList = (OutputLabel) application
.createComponent(OutputLabel.COMPONENT_TYPE);
checkList.setFor("checkList");
checkList.setId("checkListLabel");
checkList.setValue("Check List");
htmlPanelGrid.getChildren().add(checkList );
final SelectManyMenu checkboxes =(SelectManyMenu) application
.createComponent(SelectManyMenu.COMPONENT_TYPE);
checkboxes.setId("checkList");
checkboxes.setValueExpression
("value",expressionFactory.createValueExpression(elContext, "#{itemBean.selectedList}", String.class));
checkbox.setRequired(false);
SelectItem[] items = {
new SelectItem(1, "Item 1"),
new SelectItem(2, "Item 2"),
new SelectItem(3, "Item 3"),
new SelectItem(4, "Item 4"),
new SelectItem(5, "Item 5")
};
UISelectItems selectItems = new UISelectItems();
selectItems.setValue(cfaItems);
checkboxes.getChildren().add(selectItems);
htmlPanelGrid.getChildren().add(checkboxes);
return htmlPanelGrid;
}
我希望得到的实际结果是这样的:
<h:outputText value="Check List" />
<p:selectManyCheckbox value="#{itemBean.selectedList}"
layout="pageDirection">
<f:selectItems value="#{itemBean.selectItems}" />
</p:selectManyCheckbox>
上面的代码在使用“SelectManyCheckbox”时不起作用,但在使用“SelectBooleanCheckbox”时工作正常。
我也尝试了“SelectManyMenu”和“SelectOneMenu”,结果是一样的。
既然多选组件不适用于我的代码,我会错过什么吗?它不会产生任何错误消息供我检查我的代码。我已经被这个问题困扰了几天,我无法从谷歌找到任何解决方案。
非常感谢任何帮助或想法。谢谢你。