1

我正在使用 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”,结果是一样的。

既然多选组件不适用于我的代码,我会错过什么吗?它不会产生任何错误消息供我检查我的代码。我已经被这个问题困扰了几天,我无法从谷歌找到任何解决方案。

非常感谢任何帮助或想法。谢谢你。

4

0 回答 0