2016-01-25 8 views
8
<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> 

Wenn mein ${list} leer ist, wie kann ich .clone Zeile angezeigt werden, ohne Codes zu duplizieren oder mit Hilfe von Javascript?Vereinfachen Standardanzeige eine Zeile, wenn Outputliste leer ist

+0

möchten Sie nur leere Zeile zeigen? –

+0

@KenBekov Nein, momentan wird eine leere Zeile angezeigt, aber ich möchte, dass der 'tr .clone' angezeigt wird. – bumbumpaw

+0

Um' .clone' anzuzeigen, brauchst du 'iter' trotzdem. Woher bekommst du 'iter' wenn deine Liste leer ist? –

Antwort

2

Ich weiß nicht, ob ich Ihr Problem verstanden habe. Wenn Sie die Ausgabe eine Zeile mit allen Inhalten wollen, wenn die Liste leer ist, versuchen nächsten Ansatz: verändert nach Frage:

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

Für den Einsatz fn: Namespace nur in der Datei <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

Udate hinzufügen beginnen Änderungen

+0

danke, derzeit der einfachste Ansatz. – bumbumpaw

1

Wenn die Liste leer ist, fügen Sie einen leeren Wert zur Liste hinzu. Sie können dies im Servlet oder in der JSP tun, aber in JSP müssen Sie zusätzlichen Java-Code schreiben, um die Liste zu modifizieren.

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

Was ist, wenn dies nicht der letzte Ort ist, an dem die Liste verwendet wird? Was ist, wenn die Liste woanders verwendet wird? Und niemand erwartet, dass die leere Liste null enthält. –

+0

@KenBekov Ich sehe nicht, dass die leere Liste irgendwo anders verwendet wird. Die Liste, die in der JSP verwendet wird, kann instanziiert werden, wenn sie leer ist. –