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>