我有一个迭代器,我正在尝试动态命名ID
<s:iterator value="roleScreenDetailsList" status ="itemIndex">
<table>
<tr class="normRow" id="row_<s:property value="#itemIndex.count"/>" style="display:none;">
<td colspan="8" class="bdr0">
<s:textfield name="roleDescription" cssClass="txtboxDIS" id="Desc_<s:property value="#itemIndex.count"/>" size="30" disabled="true" />
</td>
</table>
</s:iterator>
在上面的代码中,class =“normRow”的表行生成了正确的id,但是在文本字段的情况下,我收到以下错误
org.apache.jasper.JasperException: /WEB-INF/jsp/screens/role.jsp(150,102) Unterminated <s:textfield tag
我错过了什么吗?
答案 0 :(得分:2)
<s:iterator value="roleScreenDetailsList" status ="itemIndex">
<table>
<tr id="row_${itemIndex.count}">
<td><s:textfield name="roleDescription" id="Desc_%{#itemIndex.count}" /></td>
</tr>
</table>
</s:iterator>
答案 1 :(得分:1)
尝试类似
的内容 <s:iterator value="roleScreenDetailsList" status ="itemIndex">
<table>
<tr class="normRow" id="row_<s:property value="#itemIndex.count"/>" style="display:none;">
<td colspan="8" class="bdr0">
<s:textfield name="roleDescription" cssClass="txtboxDIS" id='Desc_<s:property value="#itemIndex.count"/>' size="30" disabled="true" />
</td>
</table>
</s:iterator>
答案 2 :(得分:1)
自定义jsp标记不在其他jsp标记的属性内部进行评估。但是,在这种情况下,scriptlet应该可以工作:
<s:textfield name="roleDescription" cssClass="txtboxDIS"
id='Desc_<%= ((org.apache.struts2.views.jsp.IteratorStatus)pageContext.findAttribute("itemIndex")).getCount() %>'
size="30" disabled="true" />