/ / Jstl warunkowy <c: gdy nie przypisujemy wartości przekazanej ze zmiennej jsp - jsp, jstl, warunkowy

Warunek Jstl <c: gdy nie przypisujemy wartości przekazanej ze zmiennej jsp - jsp, jstl, warunkowe

Potrzebuję następującej logiki:

  1. Uzyskać Data wysyłki z db
  2. Jeśli Data wysyłki ma wartość (nie jest pusta), wyświetl ją
  3. W przeciwnym razie ustaw Data wysyłki który jest wyświetlany na stronie dzisiejsza data. W ten sposób użytkownik może po prostu przesłać stronę, a wartość domyślna (dzisiejsza data) zostanie zapisana w db. Użytkownik może również zmienić tę wartość.

Oto, co do tej pory miałem:

myJsp.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
...
<% String todaysDate = cm.GetMonth() + "/" + cm.GetDay() + "/" + cm.GetYear();%>
...
<c:forEach var="i" items="${bean.results}">
<c:choose>
<c:when test="${empty i.shippingDate}">
<c:set var="shippingDate" value="<%=todaysDate%>" scope="request"></c:set>
</c:when>
</c:choose>
<TD>
<INPUT TYPE="text" NAME="shippingDate" id="shippingDate" value="${i.shippingDate}"/>
</TD>

Powyższy kod działa, gdy istnieje wartość w db, ale nie ustawia się Data wysyłki do dzisiejsza data jeśli nic nie zostanie zwrócone z db.

Czy ktoś widzi, co robię źle?

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz utworzyć inną zmienną i odpowiednio ją przypisać:

<c:forEach var="i" items="${bean.results}">
<c:choose>
<c:when test="${empty i.shippingDate}">
<c:set var="inputDate" value="<%=todaysDate%>" scope="request"/>
</c:when>
<c:otherwise>
<c:set var="inputDate" value="${i.shippingDate}" scope="request"/>
</c:otherwise>
</c:choose>
<td>
<input type="text" NAME="shippingDate" id="shippingDate" value="${inputDate}"/>
</td>
...