Jsp代码:
<tbody>
<c:forEach items="${noteList}" var="note" varStatus="count">
<tr id="<c:out value="${count.count}"/>">
<td id="noteType${count.count}">
Transaction Note
</td>
<td id="noteEnteredDate${count.count}">${note.formattedEnteredOn}</td>
<td id="noteEnteredBy${count.count}">${note.formattedUserInitials}</td>
<td id="noteContent${count.count}">${note.noteText}</td>
</tr>
</c:forEach>
</tbody>
view source code for above screen shot
不生成tr id
会出现什么问题答案 0 :(得分:0)
使用单引号而不是双引号。这将有效:
<tbody>
<c:forEach items="${noteList}" var="note" varStatus="count">
<tr id="<c:out value='${count.count}'/>">
...
</tr>
</c:forEach>
</tbody>
更新。这个JSTL代码 -
<table>
<thead></thead>
<tbody>
<c:forEach items="${noteList}" var="note" varStatus="count">
<tr id="<c:out value='${count.count}'/>">
<td id="noteType${count.count}">
Transaction Note
</td>
<td id="noteEnteredDate${count.count}">1</td>
<td id="noteEnteredBy${count.count}">2</td>
<td id="noteContent${count.count}">3</td>
</tr>
</c:forEach>
</tbody>
</table>
生成以下HTML标记 -
<table>
<thead></thead>
<tbody>
<tr id="1">
<td id="noteType1">
Transaction Note
</td>
<td id="noteEnteredDate1">1</td>
<td id="noteEnteredBy1">2</td>
<td id="noteContent1">3</td>
</tr>
etc...
</tbody>
问题也可能出在对象的字段中。例如,noteText
字段可能包含特殊字符。例如,结束标记 - </table>
。
<c:set var="str" value="</table>"/>
然后我们得到这样的东西 -
fn:escapeXml()
函数转义可以解释为XML标记的字符。结果出现以下情况 -
<td id="noteContent${count.count}">${fn:escapeXml(str)}</td>
你会得到 -
<td id="noteContent3"></table></td>
如果您更改上一个示例以使用此功能,您将获得所需内容: