Jak sformatować i wyświetlić obiekt Date
w JSP, najkorzystniej używając JSTL i EL, ale czy inne rozwiązanie jest mile widziane? Nie mogę zmienić obiektu bean.Sformatuj datę i wyświetl ją przy użyciu JSTL i EL
Mam następujące klasy:
import java.util.Date;
public class Person {
private Date myDate;
public Date getMyDate() {
return myDate;
}
public void setMyDate(Date myDate){
this.myDate = myDate;
}
}
próbuję wyświetlić datę w tym obiekcie w stronie JSP. Kiedy robię to <c:out value="${person.myDate} />
, drukuje to na stronie. 2013-06-08 00:00:00.0
Co chcę zrobić, to usunąć porcję daty i sformatować ją na MM-dd-yyyy
.
Próbowałem to:
<c:set var="myDate" value="${person.myDate }"/>
<fmt:formatDate value="${myDate}" type="date" var="formattedDate"/>
i dała mi następujący błąd
Nie można przekonwertować ciąg '$ {MyDate}' do klasy java.util.Date dla wartości atrybutu: java .lang.IllegalArgumentException: Edytor właściwości nie zarejestrowana w PropertyEditorManager
Potem próbowałem następujące:
<c:set var="myDate" value="${person.myDate }"/>
<fmt:parseDate value="${myDate }" var="parsedDate" pattern="MM-dd-yyyy"/>
<c:out value="${parsedDate }"/>
i mam:
data Unparseable: "$ {MyDate}"
Daje mi "Nie można przekonwertować ciągu znaków '$ {myDate}" na klasę java .util.Date " – Susie
Jeśli chodzi o błędne deklaracje JSTL, moja strona wyświetla datę, jeśli nie spróbuję sformatować. Czy to wystarczy, aby potwierdzić, że deklaracje jstl pasują do mojej wersji serwlet/jsp? – Susie
Nie, tagi zostały zmienione między wersjami JSP. Uzyskali ciąg (EL) i ocenili go dla siebie. Następnie w wyższych wersjach JSP kontener serwletu dokonuje oceny, a następnie wysyła obiekt do znacznika, który odbiera ten typ obiektu, a nie ciąg do oceny. Jeśli zmiksujesz tagi, dostaniesz dziwne błędy. Jeśli jeden tag działa, nie oznacza to, że reszta jest w porządku. – Bogdan