Facelets重复id

时间:2010-05-31 07:41:56

标签: components tags facelets

我正在创建一个facelet组件,我打算在一个页面中包含多次。

我需要在我的组件中定义一个a4j:outputPanel标签并给它一个id,这样就可以通过ajax reRender这个outputPanel。但是facelets似乎没有处理这种情况,因为抛出了“duplicateId Exception”。我部分地理解为什么会这样。我在一个页面中包含了几个组件,但每个组件都包含具有相同硬编码ID的outputPanel。

  1. 不能硬编码吗?
  2. 是否有任何facelets标签创建边界,您不必关心该边界内的对象的id与边界外的对象ID之间的冲突?

2 个答案:

答案 0 :(得分:1)

实际创建子视图会导致partialTriggers出现问题。 < UI:成分>     < f:subview id =“#{id}”>          ....组件代码      < / F:子视图>  < / UI:成分>

答案 1 :(得分:0)

这是一种通过将id传递给组件来避免硬编码ID的方法,例如:

ac:testComponent id =“someId”

在facelet组件中:

h:outputText id =“#{id} _outputText”

问题是trinidad不支持partialTriggers属性的这种EL语言。如果有人知道如何做到这一点,请在本网站上发布解释。