2013-03-11 1 views
0

У меня есть страница JSP с переменной java внутри которой имя ${entry.date}, тип этой переменной - Gregorian Calendar, и она помещается в цикле и наконец создает таблицу журнала ошибок. теперь мой вопрос в том, что это возможно на моей текущей странице, используя javascript, я получаю переменную и преобразован в объект Solar Calendar и поместил ее снова в свой html?Преобразование Java-григорианского календаря в Javascript

Выход ${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> 
+0

Откуда берется ''? И почему вы хотите сделать это в Javascript, а не на Java? –

+0

Я просто хочу изменить раздел просмотра, а не исходную дату в ядре Java, а - это определенный taglib в проекте, у него есть метод getDate(), но когда я либо изменил его, либо изменил дату там, ничего не изменилось. –

ответ

1

Там нет необходимости делать это в JavaScript. Просто используйте стандартный JSTL тег formatDate вместе с Calendar «s getTime() аксессора:

<%@ 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 в соответствии с вашими потребностями.

Edit: Самый элегантный способ добиться того, что вы хотите, будет осуществлять преобразование/форматирование пользовательского тега, но другой путь будет:

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

где SomeHelperClass.convertCalendar() некоторый статический метод полезности для преобразования вашего Calendar.

+0

Спасибо за ответ, но шаблон не является моей проблемой, я хочу преобразовать значение Date Value, я имею в виду Gregorian To Solar Calendar. –

+0

Хорошо, вы можете рассмотреть вопрос о пересмотре вашего вопроса. Определенно непонятно, чего вы пытаетесь достичь. – ach

+0

@MattStone делает мою помощь по редактированию? – ach