2012-06-16 1 views
1

Я использую выполнения запросаКак установить дату в методе типа календаря в jsp с помощью jstl?

select lastlevel as VERSION,name as DESCRIPTION, 
TO_DATE(lastdate, 'DDMONYYYY_HH24:MI:SS') as RELEASEDATE 
from mytable where rownum<=10 

здесь столбец lastdate имеет тип VARCHAR

, которые дают результат, как этот

Version  Release Date   
1.0   2002-11-22 

2.0  2003-02-08 

я заходящего результат вышеупомянутого запроса, как этот здесь setLastDate имеет тип каландра, поэтому я устанавливаю результат даты выпуска в методе, таком как

if (rs.getString("VERSION") != null) {    bean.setLastLevel(rs.getString("VERSION").trim()); 
} 

if (rs.getDate("RELEASEDATE") != null) 
{ 
Calendar calendar = Calendar.getInstance(); 
calendar.setTime(rs.getDate("RELEASEDATE")); 
bean.setLastDate(calendar); 
} 

Значение устанавливается в bean как это 2003-02-08. в конце я добавляю этот бит результата в список «список» массива, как list.add (bean);

Теперь я хочу все это значение в jsp. Я использую весенний mvc, поэтому я возвращаю представление с «списком» arraylist. когда я итерация значение в JSP как этот

<c:forEach var="list" items="${list}"> 
<td valign="top">${list.lastLevel}</td> 
<td valign="top">${list.lastDate}</td> 
</c:forEach> 

в JSP вместо того, чтобы даты я получаю как этот

Version  Release Date   
1.0   java.util.GregorianCalendar[time=1037775600000,areFieldsSet=true, 

areAllFieldsSet = истинный, снисходителен = истина, зона = sun.util .calendar.ZoneInfo [ID = "США/Аризона", смещение = -25200000, dstSavings = 0, useDaylight = ложные, переходы = 12, lastRule = нуль], firstDayOfWeek = 1, minimalDaysInFirstWeek = 1, ERA = 1, YEAR = 2002 , МЕСЯЦ = 10, WEEK_OF_YEAR = 47, WEEK_OF_MONTH = 4, DAY_OF_MONTH = 20, day_of_year = 324, DAY_OF_WEEK = 4, DAY_OF_WEEK_IN_MONTH = 3, AM_PM = 0, ЧАС = 0, HOUR_OF_DAY = 0, МИНУТНЫЙ = 0, ВТОРОЙ = 0, миллисекунды = 0, ZONE_OFFSET = -25200000 , DST_OFFSET = 0]

2.0   java.util.GregorianCalendar[time=1044687600000,areFieldsSet=true, 
areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="US/Arizona",offset=-25200000,dstSavings=0,useDaylight=false,transitions=12,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2003,MONTH=1,WEEK_OF_YEAR=6,WEEK_OF_MONTH=2,DAY_OF_MONTH=8,DAY_OF_YEAR=39,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=2,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=-25200000,DST_OFFSET=0] 

пожалуйста, помогите мне в решении this.I необходимость получить дату, как и в result.How, чтобы решить эту проблему. Спасибо заранее.

ответ

2

Применение

<td valign="top">${list.lastDate.time}</td> 

Это будет вызывать getTime() метод в календаре экземпляре, который возвращает экземпляр Date

Предпочтительно не использовать такие же имя уага в качестве атрибута, назовет его row (или someother разумные переменный имя) вместо а затем ${row.lastDate.time}

<c:forEach var="row" items="${list}"> 
</c:forEach> 

, если вы хотите пользовательский формат вывода, то

добавить

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 

и использовать его как

<fmt:formatDate pattern="yyyy-MM-dd" value="${list.lastDate.time}" /> 
+0

спасибо .. если я использую как выше ваше предложение, я получаю дату, как этот Ср Ноя 20, 00:00: 00 MST 2002. Мне нужна дата, например, 2003-02-08 или 8 февраля 2003 года в jsp с использованием jstl – anto

+0

Спасибо. Я не получаю никакого значения в jsp. Я пробовал вот так: anto

+0

Вы использовали' '? –