0

${entry.date}名前が、この変数のタイプがであるjava変数を含むJSPページがありGregorian Calendar、ループ内に配置され、最後にエラーログのテーブルが生成されます。今私の質問は、現在のページで、を使用しjavascriptて変数を取得し、Solar Calendarオブジェクトに変換して、HTMLに再度配置することは可能ですか?

の出力${entry.date}は次のとおりです。

java.util.GregorianCalendar[time=1361788629000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="GMT+03:30",offset=12600000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2013,MONTH=1,WEEK_OF_YEAR=9,WEEK_OF_MONTH=5,DAY_OF_MONTH=25,DAY_OF_YEAR=56,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=2,HOUR_OF_DAY=14,MINUTE=7,SECOND=9,MILLISECOND=0,ZONE_OFFSET=12600000,DST_OFFSET=0]

そして、HTMLブロックは次のとおりです。

<c:forEach var="entry" items="${errorLog}">
<tr>
    <td align="center" nowrap="nowrap">
        <mytag:format dateTime="${entry.date}"/>
    </td>
</tr>
</c:forEach>
4

1 に答える 1

1

Javascript で行う必要はありません。標準の JSTLformatDateタグとCalendargetTime()アクセサーを使用するだけです。

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
...
<c:forEach var="entry" items="${errorLog}">
<tr>
    <td align="center" nowrap="nowrap">
        <fmt:formatDate value="${entry.date.time}" pattern="yyyy-MM-dd hh:mm:ss a" />
    </td>
</tr>
</c:forEach>

patternニーズに合わせて調整できます。

編集:あなたが望むものを達成するための最もエレガントな方法は、カスタムタグで変換/フォーマットを実装することですが、別の方法は次のようになります:

<c:set var="calendar" value="${entry.date}" />
<c:set var="convertedCalendar" value='<%=SomeHelperClass.convertCalendar((Calendar)pageContext.findAttribute("calendar")) %>' />

SomeHelperClass.convertCalendar()を変換するための静的ユーティリティ メソッドはどこにありますかCalendar

于 2013-03-11T13:04:57.703 に答える