2009-08-23 5 views
0

J'utilise JSF-facelets.jar 1.1.14 (je l'ai téléchargé here) et tomcat 6,0tag JSF introuvable

Manifest-Version: 1.0 
Ant-Version: Apache Ant 1.7.0 
Created-By: 1.5.0_12-b04 (Sun Microsystems Inc.) 
Implementation-Version: 1.1.14 

Si je comprends bien, JSF-facelets.jar = JSF + JSTL + Facelets (???)


Mon problème est lorsque j'utilise la fonction "fmt".

Ce code ...

<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:fmt="http://java.sun.com/jstl/fmt"> 
     <h:outputLabel value="hello" /> 
     <fmt:formatDate value="${myBean.date}" pattern="dd/MM/yyyy"/> 
    </html> 

... générer ce code HTML:

<html> 
     <p>hello</p> 
     <fmt:formatDate value="${myBean.date}" pattern="dd/MM/yyyy"/> 
    </html> 



Pourquoi "fmt: formatDate" est pas un changement dans le code HTML? ??

Répondre

1

La manière correcte d'y parvenir dans JSF est d'utiliser des convertisseurs. Utilisez la balise <h:outputText> comme ceci:

<h:outputText value="#{myBean.date}"> 
    <f:convertDateTime pattern="dd/MM/yyyy" /> 
</h:outputText> 

Vous trouverez que tous les balises JSTL sont pris en charge JSF. Facelets fournit un support limité pour la bibliothèque de balises de base (forEach, etc), mais ils peuvent ne pas fonctionner comme vous le souhaitez. Cet article fournit un bon résumé: http://drewdev.blogspot.com/2008/03/build-time-vs-render-time.html

+0

harto, merci beaucoup pour cette réponse qui fonctionne. De plus votre lien est très utile! –

0

est une balise jstl. il n'a pas besoin d'être traduit. il est compilé à partir d'un jsp dans une servlet.

Qu'attendiez-vous qu'il soit "traduit" en?

+0

J'ai édité ma question. Peut-être que vous le comprendrez mieux. Je suppose que doit générer ce code HTML "

24/08/2009

". Pas dans mon cas, et c'est le problème! génère ce code HTML: