2016-07-22 41 views
0

传递的值我需要以下逻辑来发生:jstl的条件<C:当未分配从JSP变量

  1. 从DB获得shippingDate
  2. 如果shippingDate具有值(未空),显示它
  3. 否则,将shippingDate设置为今天的日期。 这样用户可以提交页面,默认值(今天的日期)将被写入db。用户也可以选择更改该值。

这是我到目前为止有:

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> 

上面的代码工作时存在分贝值,但它不设置今天shippingDate的日期如果没有从数据库返回。

有没有人看到我做错了什么?

+0

你会得到什么结果''?看起来你设置了局部变量'shippingDate'而不改变'i.shippingDate'。 – tarashypka

+0

@tarashypka这是真的,如果我设置value =“$ {shippingDate}然后我得到todaysDate,对于有数据库中的东西的值,我什么也没有:( – Angelina

回答

1

您可以创建另一个变量,并适当地分配给它:

<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

这正是我之前在本地变量:)谢谢 – Angelina