【问题标题】:Dynamically generated id in tomahwak dataList (JSF 1.2)tomahwak dataList (JSF 1.2) 中动态生成的 id
【发布时间】:2014-12-20 06:39:41
【问题描述】:

我无法弄清楚如何为<t:dataList> 中的元素动态生成 ID,它位于 <t:dataTable> 中。代码看起来或多或少是这样的:

<t:dataTable value="#{SomeBean.foo}" var="item">
    <h:column rendered="true">
      <div id="divpvmu">
        <t:dataList value="#{item.templates}" var="template" rowCountVar="templateIndex">
            <div id="saveBtn">
            </div>
        </t:dataList>
      </div>
    </h:column>

显然这段代码会生成一些具有相同 id="saveBtn" 的 div .我希望每个生成的 div 都有不同的 id。我试图通过这个改变来做到这一点:

&lt;div id="saveBtn_#{templateIndex}"&gt;

,但是我遇到了一个异常

javax.servlet.jsp.JspException: java.io.IOException: Example.jsp(50,31) JBWEB004178: #{..} is not allowed in template text

有没有办法为这样的构造生成不同的 id?我正在使用 JSF 1.2。

【问题讨论】:

    标签: jsf-1.2 tomahawk


    【解决方案1】:

    &lt;t:div&gt; 标签。它允许您在 id 属性中使用 EL 表达式。

    所以这样的事情应该可以完成:

    <t:div id="saveBtn_#{templateIndex}" forceId="true">
    

    JSF 也应该自动为你生成 id:

        <t:dataList id="myList" value="#{item.templates}" var="template">
            <t:div id="saveBtn">
            </t:div>
        </t:dataList>
    

    t:dataTable, t:dataList 等中的这个标签会生成像这样的id:

    myList:0:saveBtn 第一个元素, myList:1:saveBtn 用于第二个元素,依此类推。

    【讨论】:

      猜你喜欢
      • 2012-09-24
      • 2012-08-29
      • 2011-07-27
      • 1970-01-01
      • 1970-01-01
      • 2018-07-12
      • 2012-10-30
      • 2013-03-06
      • 1970-01-01
      相关资源
      最近更新 更多