Primefaces复合组件内的selectOneMenu itemDisabled

时间:2017-05-10 12:55:56

标签: jsf primefaces composite-component selectonemenu

我们创建了一个复合组件,其中包含一个primefacs selectOneMenu和一些标记。现在,我们要求禁用某些项目。如何在复合组件内完成?我们尝试的是:

复合组件:

<composite:interface>
    ...
    <composite:attribute name="itemDisabled" method-signature="java.lang.Boolean itemDisabled(javax.faces.model.SelectItem)" />
</composite:interface>
<composite:implementation>
    ...
    <p:selectOneMenu id="#{cc.attrs.name}">
        <f:selectItems value="#{cc.attrs.selectedItems}"
            var="item"
            itemDisabled="#{cc.attrs.itemDisabled}" />
    </p:selectOneMenu>
    ...
</composite:implementation>

查看:

<ctags:input_selectOneMenu name="foo"
    selectedItems="#{bean.selectItems}"
    itemDisabled="#{bean.itemDisabled(item)}" />

豆:

public boolean itemDisabled(javax.faces.model.SelectItem item) {
    return true;
}
public List<javax.faces.model.SelectItem> getSelectItems() {
    return list of selectitems...
}

itemDisabled方法中的断点永远不会被命中,所有项都被启用。

谢谢,kopi

0 个答案:

没有答案