【问题标题】:Facelets duplicate idFacelets 重复 ID
【发布时间】:2011-02-09 08:13:51
【问题描述】:

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

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

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

【问题讨论】:

    标签: components tags facelets


    【解决方案1】:

    创建子视图实际上解决了 partialTriggers 的问题。 ....组件代码 子视图>

    【讨论】:

      【解决方案2】:

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

      ac:testComponent id="someId"

      然后在 facelet 组件中:

      h:outputText id="#{id}_outputText"

      问题是 trinidad 不支持该 EL 语言的 partialTriggers 属性。如果有人知道如何执行此操作,请在此站点上发布说明。

      【讨论】:

      • 我在您的示例中看到的一个问题是您的 id 中间有一个下划线,这将导致 IllegalArgumentException
      • 没关系,这不应该是一个问题,但请在此处查看我的问题以了解详细信息:stackoverflow.com/questions/5972433/…
      猜你喜欢
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      • 2014-02-28
      • 1970-01-01
      • 2013-01-24
      • 2011-06-03
      • 2013-11-15
      • 1970-01-01
      相关资源
      最近更新 更多