我正在使用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”,结果相同。
由于多选组件不能与我的代码一起使用,我是否会错过一些东西? 它不会导致任何错误消息让我检查我的代码。 几天来我一直坚持这个问题,我无法从谷歌找到任何解决方案。
非常感谢任何帮助或想法。谢谢。