You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JSP的Input框中设置当前日期作为默认值?

我来帮你搞定这个JSP输入框默认显示当前日期的问题!你的代码没法正常显示当前日期,主要是两个逻辑顺序和默认值处理的问题:

首先,你先在输入框里引用了${fmtDate},之后才用<fmt:formatDate>定义这个变量——JSP是从上到下解析的,这时候解析输入框的时候根本找不到fmtDate这个变量;其次,你没处理form.bean.dateProperty为空的情况,没法自动填充当前日期作为默认值。

解决方案步骤

首先确保你已经引入了JSTL的核心库和格式化标签库(如果页面里还没加的话):

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

然后修改日期输入框的代码,调整顺序并添加默认值逻辑:

<tr>
    <td align="left" width="19%">Start Date :</td>
    <td width="33%" align="left">
        <%-- 先处理默认值:如果dateProperty为空,就用当前日期,否则用已有值 --%>
        <fmt:formatDate 
            var="fmtDate" 
            value="${empty form.bean.dateProperty ? new java.util.Date() : form.bean.dateProperty}" 
            pattern="yyyy-MM-dd" <%-- 这里可以根据你的需求调整日期格式,比如yyyy/MM/dd --%>
        />
        <%-- 现在fmtDate已经定义好,直接作为输入框默认值 --%>
        <input type="text" name="bean.dateProperty" value="${fmtDate}"/>
    </td>
</tr>

关键说明

  • 顺序问题:必须先通过<fmt:formatDate>生成并定义fmtDate变量,再在输入框的value属性里引用它,JSP才能正确解析到变量值。
  • 默认值逻辑:用EL的三元表达式${empty 变量 ? 默认值 : 变量}判断,如果form.bean.dateProperty是空的,就自动生成当前java.util.Date对象作为数据源。
  • 格式自定义:pattern属性可以根据业务需求调整,比如改成MM/dd/yyyy或者yyyy-MM-dd HH:mm:ss(如果需要时间的话)。

内容的提问来源于stack exchange,提问作者Robin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:46:32