Jsp 简化outputdata列表为空时默认显示一行
如果我的Jsp 简化outputdata列表为空时默认显示一行,jsp,jstl,el,Jsp,Jstl,El,如果我的${list}为空,如何在不复制代码或使用javascript的情况下显示.clone行?我不知道是否理解您的问题。如果希望输出一行所有内容,当列表为空时,请尝试下一种方法: <table> <c:if test="${output.list == nul}"> <tr><td><input type="text" /><select></select><input type="text" />
${list}
为空,如何在不复制代码或使用javascript的情况下显示.clone
行?我不知道是否理解您的问题。如果希望输出一行所有内容,当列表为空时,请尝试下一种方法:
<table>
<c:if test="${output.list == nul}">
<tr><td><input type="text" /><select></select><input type="text" />
</td>
</tr>
</c:if>
<c:forEach var="iter" items="${output.list}">
<tr><td><input type="text" /><select></select><input type="text" value="${iter.getVal()}" />
</td>
</tr>
</c:forEach>
</tbody>
</table>
要使用fn:
名称空间,只需在文件的开头添加
Udate:根据问题更改进行更改如果列表为空,则向列表中添加空值。您可以在servlet或JSP中完成,但在JSP中,您必须编写额外的java代码来修改列表
<table>
<c:forEach var="i" begin="0" end="${not empty list?(fn:length(list)-1):0}">
<tr class="clone">
<td>
<input type="text" />
<select></select>
<input type="text" value="${list[i]!=null?list[i].getVal():''}" />
</td>
</tr>
</c:forEach>
</tbody>
${list.add(null)}
你想只显示空行吗?@KenBekov不,目前它显示空行,但我希望它显示tr.clone
以显示。clone
你无论如何都需要iter
。如果您的列表为空,您将从哪里获得iter?您知道吗?只是想消除上面提到的硬编码js。如果这不是最后一个使用列表的地方呢?如果该列表将用于其他地方怎么办?没有人希望空列表包含null。@KenBekov我看不到空列表在其他地方使用。如果JSP中使用的列表为空,则可以对其进行实例化。
<table>
<c:set var="list" value="${output.list}"/>
<c:if test="${empty list && list != null}">
${list.add(null)}
</c:if>
<c:forEach var="iter" items="${list}">
<tr><td><input type="text" /><select></select><input type="text" value="${iter.getVal()}" />
</td>
</tr>
</c:forEach>
</tbody>
</table>