1

JSTL/JSP ページに、アプリケーションからの java.util.Date オブジェクトがあります。そのオブジェクトで指定された日の翌日を見つける必要があります。<jsp:scriptlet> を使用して Java にドロップし、java.util.Calendar を使用して必要な計算を行うことができますが、これは不器用で洗練されていないように感じます。

JSPまたはJSTLタグを使用して、完全なJavaに切り替えることなくこの目的を達成する方法はありますか?それとも後者がこれを達成する唯一の方法ですか?

4

5 に答える 5

6

私は jsp に Java コードを入れるのが好きではありません。

これを実現するには、静的メソッドと taglib を使用します。

あくまでも私の考えですが。この問題を解決するには多くの方法があります。

public static Date addDay(Date date){
   //TODO you may want to check for a null date and handle it.
   Calendar cal = Calendar.getInstance();
   cal.setTime (date);
   cal.add (Calendar.DATE, 1);
   return cal.getTime();
}

関数.tld

<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
  version="2.0">
  <description>functions library</description>
  <display-name>functions</display-name>
  <tlib-version>1.1</tlib-version>
  <short-name>xfn</short-name>
  <uri>http://yourdomain/functions.tld</uri>
  <function>
    <description>
      Adds 1 day to a date.
    </description>
    <name>addDay</name>
    <function-class>Functions</function-class>
    <function-signature>java.util.Date addDay(java.util.Date)</function-signature>
    <example>
      ${xfn:addDay(date)}
    </example>
  </function>
</taglib>
于 2008-09-16T17:11:20.353 に答える
2

これはあなたの最初の質問には答えませんが、おそらくこれを行うことで java.util.Calendar を通過する手間を省くことができます:

// Date d given
d.setTime(d.getTime()+86400000);
于 2008-09-16T16:33:21.617 に答える
2

スクリプトレットを使用するか、独自のタグを作成する必要があります。記録として、Calendar を使用すると次のようになります。

Calendar cal = Calendar.getInstance();
cal.setTime (date);
cal.add (Calendar.DATE, 1);
date = cal.getTime ();

本当に恐ろしい。

于 2008-09-16T17:03:13.650 に答える
1

残念ながら、私が知っている標準の JSP/JSTL ライブラリには、この日付計算を可能にするタグはありません。

最も単純で最も洗練されていない解決策は、スクリプトレット コードを使用して計算を行うことです。あなたはすでに、これは扱いにくい解決策だと考えていると述べていますが、私はあなたに同意します。私があなただったら、おそらくこれを取得するためにカスタム JSP taglib を作成するでしょう。

于 2008-09-16T17:08:09.630 に答える
1

一般に、JSP にはデータ ロジックを含める必要はないと思います。それらは、表示する必要があるすべてのデータをコントローラから取得する必要があり、すべてのロジックは、表示されるデータではなく、データがどのように表示されるかに関するものである必要があります。これは通常、カスタム タグを追加するよりもはるかに簡単で、コードや XML も大幅に削減できます。

また、再利用がまったく行われない場合、小さなスクリプトレットは taglib XML よりもはるかに悪いのでしょうか?

于 2008-09-16T19:46:14.943 に答える