2
我一直在玩複合組件,我遇到了一些我找不到的東西。如果不使用複合材料部件我想有這樣的事情:即代碼插入複合材料部件的JSF複合組件和selectItems
<h:outputText value="Some Label:"/>
<h:selectOneMenu">
<f:selectItem itemLabel="Item 1"/>
<f:selectItem itemLabel="Item 2"/>
<f:selectItem itemLabel="Item 3"/>
</h:selectOneMenu>
我基本上打開:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:composite="http://java.sun.com/jsf/composite">
<!-- INTERFACE -->
<composite:interface>
<composite:attribute name="label" required="true"/>
<composite:attribute name="options" required="true"/>
</composite:interface>
<!-- IMPLEMENTATION -->
<composite:implementation>
<h:outputText value="#{cc.attrs.label}"/>
<h:selectOneMenu style="width:140px;">
<f:selectItem value="#{cc.attrs.options}" />
</h:selectOneMenu>
</composite:implementation>
</html>
現在這裏是我難倒。我知道我可以把我想的成分在支持bean使用,使用它像這樣的項目清單:
<util:dropdown label="Some Label:" options="#{backingBean.list}"/>
真正的問題是,如果有一種方法的選項來傳遞,而不必使用支持bean?我想是這樣的:
<util:dropdown label="Some Label:" options="Item 1, Item 2, Item 3"/>
也許
<util:dropdown label="Some Label:" options="#{backingBean.list}">
<f:selectItem itemLabel="Item 1"/>
<f:selectItem itemLabel="Item 2"/>
<f:selectItem itemLabel="Item 3"/>
</util:dropdown>
注:顯然這兩個不工作,或者我就不會問這個問題。
說我需要的複合材料部件插入兩套不同的孩子在兩個不同的地方 - 我將如何做到這一點,否則?我只能使用第一個選項。我試圖將f:selectItems放在一個構面中,然後在複合組件中渲染該構面,但這也不起作用。在非複合組件的情況下,即只使用ui:decorate,我可以指定多個ui:爲ui定義:按名稱插入多個子項。爲什麼複合組件不具備此功能? – GreenieMeanie 2015-04-09 22:49:40
@GreenieMeanie:複合材料支持方面。 – BalusC 2015-04-10 05:59:33