1

こんにちは、jsp ファイルで jstl を使用して日付を現在の時刻と比較しようとしています。jstlを使用して日付を現在の時刻と比較するにはどうすればよいですか? 私はこれを持っています:

<jsp:useBean id="currentDate" type="java.util.Date"/>  
<fmt:formatDate var="now" value="${currentDate} pattern="yyyy-MM-dd"/>  

<c:if test="${ h.time < now }">
  <h1>print something</h1>
</c:if>

前もって感謝します!

4

3 に答える 3

6

問題を解決するいくつかの方法を共有しています。

初め:

だと思いますjava.util.Date

このように現在の日付を取得できます

<jsp:useBean id="now" class="java.util.Date"/>

次に、EL 式を使用してそれらを比較できます。

{code}
<c:if test="${submitDate < now}">
We have not yet reached the submit date.
</c:if>{code}

EL は Java の compareTo メソッドを使用するため、この比較が機能するには、両方のオブジェクトが同じクラスである必要があります。

データベースから文字列を取得する場合は、Java 日付を取得するために使用する必要があります。データベースからa を取得するjava.sql.Dateと、さらにトリッキーになります。ハックは行くことですjava.sql.Date -> String -> java.util.Date using <fmt:formatDate> and <fmt:parseDate>

リソース リンク:

現在の日付を JSTL による db のデータと比較する


2番:

<fmt:parseDate value="${found.submitDate}" pattern="yy/MM/dd" var="submitDate"/>
                                 <c:if test="${submitDate <now}">
                                     We have not yet reached the submit date.
                                 </c:if>

三番:

クリーンな方法の 1 つは、jsp:useBeanタグを使用して現在の日付/時刻を含むページ スコープの変数を作成し、通常の JSTL を使用してオブジェクトを比較することです。

最初にページ スコープを作成しjava.util.Date object(jsp:useBean を使用)、次に ${now} を使用して現在の日付/時刻を参照します。これは現在、通常の JSP オブジェクトであるため、通常の JSTL 演算子はこの変数で機能します。

<jsp:useBean id="now" class="java.util.Date"/>

<c:if test="${someEvent.startDate lt now}">
   It's history!
</c:if>

リソース リンク:

JSP での JSTL 日付と現在時刻 (今) の比較

于 2016-05-15T18:50:39.293 に答える
2

ビューレイヤー内にロジックを入れるのは悪い習慣です。

代わりにすべきことは、コントローラー内で計算を行い、結果を変数としてビューに入れ、条件内で使用することです。

<c:if test="${timeLessThanNow}">
  <h1>print something</h1>
</c:if>
于 2014-05-20T15:01:46.210 に答える