我们创建了一个复合组件,其中包含一个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