2016-07-22 25 views
0

bestanden zuweisen muss ich die folgende Logik auftreten:jstl bedingte <c: wenn nicht Wert von jsp Variable

  1. Holen Sie sich das Liefertermin aus der db
  2. Wenn der Liefertermin Wert (nicht leer), es anzeigen
  3. Andernfalls setzen Sie die shippingDate, die auf der Seite angezeigt wird das heutige Datum. Auf diese Weise kann der Benutzer nur die Seite senden und der Standardwert (das heutige Datum) wird in db geschrieben. Der Benutzer kann diesen Wert auch ändern.

Dies ist, was ich bisher:

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> 

obige Code funktioniert, wenn der Wert in db gibt es, aber es funktioniert nicht gesetzt Liefertermin-heutigen Datum wenn nichts von db zurückgegeben wird.

Kann jemand sehen, was ich falsch mache?

+0

Wie weit kommt man auf 'bekommen '? Es scheint, dass Sie die lokale Variable 'shippingDate' ohne Änderung von' i.shippingDate' gesetzt haben. – tarashypka

+0

@tarashypka das ist wahr, wenn ich Wert = "$ {shippingDate} dann setze ich todaysDate, für die Werte, die etwas in db haben, bekomme ich nichts :( – Angelina

Antwort

1

Sie können eine andere Variable erstellen und zuweisen es entsprechend:

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

Das ist genau das, was ich geschrieben habe, nachdem Sie zuvor auf lokale Variable kommentiert :) Danke – Angelina