Potrzebuję następującej logiki:
- Uzyskać Data wysyłki z db
- Jeśli Data wysyłki ma wartość (nie jest pusta), wyświetl ją
- 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 № 1Moż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>
...