2013-05-29 26 views
9
'u kullanarak görüntüleyin

Bir JSP'de, en çok tercihen JSTL ve EL'yi kullanarak bir Date nesnesini nasıl biçimlendiririm ve görüntülerim, ancak başka bir çözüm bekler misiniz? Fasulye nesnesini değiştiremiyorum. Bir JSP sayfasında da bu nesneye tarihi görüntülemek için çalışıyorumBir tarihi biçimlendirin ve JSTL ve EL

import java.util.Date; 
public class Person { 
    private Date myDate; 
    public Date getMyDate() { 
     return myDate; 
    } 
    public void setMyDate(Date myDate){ 
     this.myDate = myDate; 
    } 
} 

:

Ben şu dersim var. Bunu <c:out value="${person.myDate} /> yaptığımda, bunu sayfada yazdırır. 2013-06-08 00:00:00.0

Yapmak istediğim tarihin zaman bölümünü kaldırmak ve onu MM-dd-yyyy olarak biçimlendirmektir.

bu çalıştı:

<c:set var="myDate" value="${person.myDate }"/> 
<fmt:formatDate value="${myDate}" type="date" var="formattedDate"/> 

ve bana dizeyi dönüştürmek için

açılamıyor aşağıdaki hata verdi özellik değeri için sınıf java.util.Date için '$ {myDate}': java .lang.IllegalArgumentException:

: Mülkiyet Editör PropertyEditorManager

kayıtlı olmayan Sonra aşağıdaki çalıştı

<c:set var="myDate" value="${person.myDate }"/> 
<fmt:parseDate value="${myDate }" var="parsedDate" pattern="MM-dd-yyyy"/> 
<c:out value="${parsedDate }"/> 

ve I got:

Ayrıştırılamayan tarih: "$ {myDate}"

cevap

18

Kodunuz normalde çalışması gerekir. Böyle deneyin:

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

<fmt:formatDate value="${person.myDate}" var="formattedDate" 
       type="date" pattern="MM-dd-yyyy" /> 
${formattedDate} 

Eğer Servlet/JSP sürümle uyumlu yanlış JSTL beyanlarını varsa Genellikle çalışmaz. Başka bir şey denemeden önce bunu okuduğunuzdan emin olun: How to Reference and Use JSTL in your Web Application.

Ortamınızı tam olarak bilmiyorsanız, you can perform some tests to find out the versions JSP'nizde yazılan basit bir ${1 + 2} JSP sürümünün iyi bir göstergesi olmalıdır. Eğer tarayıcınızda 3 görüyorsanız, o zaman JSP 2.x kullanıyorsunuz, ${1 + 2} dizgisini görüyorsanız, JSP 1.x üzerindeydiniz.

+0

sınıf java dize '$ {myDate}' dönüştürmek için bana "açılamıyor verir .util.Date " – Susie

+0

Yanlış JSTL bildirimleri için, sayfam biçimlendirmeye çalışmadığım tarihi görüntüler. Jstl bildirimlerinin servlet/jsp sürümüyle eşleştiğini doğrulamak yeterli mi? – Susie

+0

Hayır, JSP sürümleri arasında etiket değiştirildi. Bir ipi (EL) alıp kendi başlarına değerlendirdiler. Daha yüksek JSP sürümlerinde, sunucu uygulaması değerlendirmeyi yapar ve nesneyi, değerlendirilecek bir dize değil, bu tür bir nesneyi alan etikete gönderir. Etiketleri karıştırırsanız garip hatalar alırsınız. Bir etiket işe yararsa, diğerlerinin iyi olduğu anlamına gelmez. – Bogdan

0

Sayfanızın başına aşağıdaki kod satırını eklemeniz gerekir ve kodunuz mükemmel çalışır. <% @ Taglib öneki = "Fmt" uri = "http://java.sun.com/jsp/jstl/fmt" %>

İlgili konular