對於部分更新我的複合組件,我在查找正確的父ID時遇到了一些問題。例如如果我的組件是一個TabView的在複合組件中獲取正確的父ID
<p:tabView id="foo">
<p:tab>
<stg:mycomponent id="bar" />
</p:tab>
</p:tabView>
裏面現在我需要字符串:foo:bar
找到正確的部分,我想更新。通過#{cc.id}
我剛剛得到bar
,所以這對我不起作用。
不過,我試圖通過某種骯髒的黑客來實現這一由這樣
<composite:attribute
name="parentId"
default=":#{component.namingContainer.parent.namingContainer.clientId}"
/>
添加屬性到我的組件。如果我交出字符串:foo:bar
到parentId
一切工作正常,但當然這是不是我真正想做的事情。我不想強迫我的組件的用戶交出這個ID。
但現在的問題:如果我不交出parentId,我只能在我的組件的「第一級」使用我的屬性。如果存在某種「嵌套ID」,則評估例如#{cc.attrs.parentId}
。到foo:bar
(這很好),但也或類似的事情,這取決於#{cc.attrs.parentId}
位於我的代碼中。
我希望能夠理解我的問題是什麼以及我所要求的。如果沒有,請留下評論。
我使用primefaces 3.5和JSF 2.1(鑽嘴魚科)
感謝您的回答,但那不是我正在尋找的。我真的需要複合組件內任何地方的完整合格ID。原因是我有多個形式_within_ cc,並且想要更新A形式中的某些部分形式的另一個形式B.我知道這不是「良好的做法」,但通過這種方式,我可以重複使用大量代碼幾行。一切正常 - 唯一的問題是獲得正確的FQ-ID – stg