Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java web app中的jsp中实现if语句?_Java_Jsp_Web_Jstl - Fatal编程技术网

如何在java web app中的jsp中实现if语句?

如何在java web app中的jsp中实现if语句?,java,jsp,web,jstl,Java,Jsp,Web,Jstl,我所做的是实现一个表来显示即将到来的约会,其中我有一个if语句,我希望在其中实现,以防止显示旧的、不在当前时间范围内的数据。例如,jsp中不应显示约会前的昨天或几周 我教过一个if语句,目前的代码是: <form method="POST" action="<%=request.getContextPath()%>/Appointment/delete"> <c:choose>

我所做的是实现一个表来显示即将到来的约会,其中我有一个if语句,我希望在其中实现,以防止显示旧的、不在当前时间范围内的数据。例如,jsp中不应显示约会前的昨天或几周

我教过一个if语句,目前的代码是:

 <form method="POST" action="<%=request.getContextPath()%>/Appointment/delete">
                    <c:choose>
                        <c:when test="${empty list}">
                            <h1>No appointments available</h1>
                        </c:when>
                        <c:otherwise>

                            <table class="styled-table" style="margin-bottom: 15px; margin-top:15px;">
                                <thead>
                                    <tr>
                                        <th>Patient Name</th>  
                                        <th>Appointment Date</th>
                                        <th>Delete</th>
                                    </tr>
                                </thead>
                                <c:forEach items="${list}" var="record">
                                    <c:choose>
                                       
                                        <c:when test="${record.date lt} <% LocalDateTime now = LocalDateTime.now(); %>">
                                    <tbody>
                                        <tr class="active-row">
                                            <td>${record.name}</td>
                                            <td>${record.date}</td>
                                            <td id="id"><button  class="delete"  value="${record.appointmentId}" ><i class="fas fa-trash-alt"></i></button></a></td>
                                        </tr>
                                    </tbody> 
                                        </c:when>
                                        <c:otherwise>
                                         
                                        </c:otherwise>
                                    </c:choose>
                                </c:forEach>
                            </table >
                        </form>

没有预约
患者姓名
预约日期
删除
${record.name}
${record.date}

嗯,我对学习jsp和java web开发非常陌生,如果您能帮助我完成这项工作,我将不胜感激。提前感谢。

尽管您可以实现此过滤,但JSP并不真正适合在呈现期间执行大量客户端处理。我建议您在servlet代码中确定应该显示哪些约会,并返回这些约会。因此,列表将填充正确的约会开始

如果您仍然想在JSP中这样做,下面是一些建议。要在JSP循环中添加条件,可以执行以下操作:

<c:forEach items="${list}" var="record">
    <!-- Only show records younger than 7 days -->
    <c:if test="${record.ageInDays lt 7}">
        <tbody>
            <tr class="active-row">
                <td>${record.name}</td>
                <td>${record.date}</td>
                <td id="id"><button  class="delete"  value="${record.appointmentId}" ><i class="fas fa-trash-alt"></i></button></a></td>
            </tr>
        </tbody> 
    </c:if>
</c:forEach>

此方法避免了在JSP中进行日期计算。

这里还有一个问题可能会对您有所帮助,您已经在使用JSTL(例如,
等),因此也应该提供
。请注意,
在表达式中不起作用。尝试类似于
${record.date lt java.time.LocalDateTime.now()}
(不记得确切的java EL语法atm)。谢谢大家的帮助谢谢大家这么做,这意味着很多,它确实有帮助。
public class Appointment {

    private static final long ONE_DAY_IN_MILLIS = 24 * 60 * 60 * 1000;

    //... existing code

    public int getAgeInDays() {
        return (System.currentTimeMillis() - date.getTime()) / ONE_DAY_IN_MILLIS;
    }
}