2014-10-24 1 views
0

Я не могу понять, как генерировать динамический идентификатор для элементов в <t:dataList>, который находится внутри <t:dataTable>. Код выглядит более или менее, как это:Динамически сгенерированный идентификатор в tomahwak dataList (JSF 1.2)

<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> 

Obiously этот код генерирует некоторое количество дивы с тем же идентификатором = «saveBtn» . Я хотел бы иметь отдельный идентификатор для каждого сгенерированного div. Я пытался сделать это с помощью этого изменения:

<div id="saveBtn_#{templateIndex}">

, однако тогда я получаю исключение

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

Есть ли способ генерировать отдельные идентификаторы для такой конструкции? Я использую JSF 1.2.

ответ

0

Существует тег <t:div>. Это позволяет использовать выражение EL в атрибуте id.

Так что-то, как это должно сделать работу:

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

JSF должен также автоматически генерировать идентификатор для вас:

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

Этот тег в т: DataTable, т: DataList и так далее воли генерировать идентификатор:

myList:0:saveBtn для первого элемента, myList:1:saveBtn для второго элемента и так далее.

Смежные вопросы