JSF- SelectManyCheckBox无法以编程方式添加

时间:2013-04-25 20:07:44

标签: jsf-2 backing-beans selectmanycheckbox

我正在使用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”,结果相同。

由于多选组件不能与我的代码一起使用,我是否会错过一些东西? 它不会导致任何错误消息让我检查我的代码。 几天来我一直坚持这个问题,我无法从谷歌找到任何解决方案。

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

0 个答案:

没有答案