1

私の本当の目標は、日付を特定の方法 (yyyy-mm-dd HH:mm) で自動的にフォーマットする単純なタグを作成することです。将来的に変更する必要がある場合は、新しい形式に更新する必要があり、あちこちに配置する必要がないのが良いでしょう.

現状では、タグに渡す日付引数が文字列として解釈される理由がわかりません。

これが私の単純なタグ(date.tag)ファイルです:

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ attribute name="value" type="java.util.Date" rtexprvalue="false" required="true"%>
${value} ${value.class}

そして、これがテストに使用しているjspファイルです。

<%@ taglib prefix="me" uri="/WEB-INF/tags"%>
<jsp:useBean id="now" scope="application" class="java.util.Date" />
<me:date value="${now}" />

出力は次のとおりです。Fri Jul 12 10:36:05 MST 2013 class java.lang.String

4

3 に答える 3

0

JB Nizet が言ったように: まず、あなたが行方不明です。rtexprvalue="true"また、属性 "uri" を "tagdir" に変更する必要があります。

タグファイルでは、「値」とそのタイプの値を出力する以外は何もしませんでした:

<%@ attribute name="value"  rtexprvalue="true" required="true" type="java.util.Date" %>
${value}
<%
out.print(jspContext.getAttribute("value").getClass());
%>

結果は次のとおりです。Sat Jul 13 02:22:31 GMT+02:00 2013 class java.util.Date

于 2013-07-12T23:56:56.423 に答える
0

rtexprvalue="true"属性宣言に欠落があります。

于 2013-07-12T22:33:53.747 に答える
0

JB Nizet と aur のアドバイスに従って${value['class']}、出力 "class java.util.Date" を取得するために使用できました。

<fmt:formatDate value="${value}" pattern="MM/dd/yyyy"/>また、予想されるフォーマットされた日付を試してみました。

Tomcat-7.0.42 と jstl-1.2 を使用しています。

于 2013-10-18T03:34:28.170 に答える