java
  • jsp
  • jstl
  • 2010-07-28 18 views 8 likes 
    8

    Görünüm için JSP'leri ve denetleyici için Spring MVC 3.0 kullanıyorum. Benim JSP ise , ben Şimdi aşağıdaki kodu sahip olduğunuz geçerli DateTime, ...İç içe dönük ifade JSP/JSTL

    <c:set var="dateTimeDisplayFormat" value='<spring:message code="display.dateFormat" />'/> 
    
    <c:set var="currentDateTime" 
        value='<%= new SimpleDateFormat(${dateTimeDisplayFormat}).format(new Date()) %>' 
        scope="page" /> 
    

    göstermek istiyorum, sorun JSTL SimpleDateFormat örneklemek için benim yerleştirilen etiket tanımakta başarısız olduğunu. Format dizesini ('dateTimeDisplayFormat' değişkeninden elde edildiği gibi) SimpleDateFormat yapıcısına iletmek istiyorum.

    Birisi lütfen yukarıdaki c: set deyiminde SimpleDateFormat için iç içe geçmiş kurucuyu nasıl yazabilirim?

    Beklentilerinizde teşekkürler!

    cevap

    16

    <c:set> yerine value özniteliğinden, etiket içeriği, değerini alabilir:

    <c:set var="dateTimeDisplayFormat"> 
        <spring:message code="display.dateFormat" /> 
    </c:set> 
    
    <c:set var="currentDateTime" scope="page"> 
        <%= new SimpleDateFormat(${dateTimeDisplayFormat}).format(new Date()) %> 
    </c:set>  
    

    Daha da iyisi, hem <spring:message> ve <fmt:formatDate> onların sonuçlarını saklayabilir beri, hiç <c:set> gerekmez sizin için değişkenleri:.

    <spring:message code="display.dateFormat" var="dateTimeDisplayFormat"/> 
    <fmt:formatDate pattern="${dateTimeDisplayFormat}" var="currentDateTime" scope="page"/> 
    
    +0

    seni çok Skaffman ederim, ancak önerilen ilk çözüm, :(işe yaramadı bana bir istisna verir
    PWC6197: Bu simge sonra beklendiği, AssignmentOperator belirteç "$" konulu Sözdizimi hatası: PWC6199 /WEB-INF/views/common/header.jsp: Oluşturulan servlet hatası 27 jsp dosyasında: Bir hata hattında meydana Gözlerimi ikinci yaklaşıma açtığınız için teşekkürler, ancak bununla birlikte, sayfada kalan tüm kodlar ile aynı tarih gösteriliyor. PaiS

    +0

    OMG! Bu yüzden aptal, sayfanın üstündeki JSTL kütüphanesi formatını dahil etmedim ve dolayısıyla 2. yaklaşım çalışma değildi. Şimdi tarihi mükemmel bir şekilde gösterir ve düzgün bir yaklaşım için çok teşekkür ederim Skaffman! – PaiS

    +1

    cevabının ruhu doğrudur, ancak sözdizimi hatası el yazısıyla betik karıştırmaktan gelir. Bu değişmez java kodudur (argh, bir JSP'de olmamalıdır), bu nedenle el değişkeni şu şekilde erişilebilir (ancak olmamalı): '<% = new SimpleDateFormat (pageContext.getAttribute (" dateTimeDisplayFormat ")). format (new Date())%> ' –

    İlgili konular