2009-08-23 88 views
0

我用JSF-facelets.jar 1.1.14(我下載here)和Tomcat 6.0JSF標籤

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 

如果我沒理解好,JSF-facelets.jar = JSF + JSTL + Facelets的( ???)


我的問題是當我使用「fmt」功能。

此代碼...

<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> 

...生成HTML代碼:

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



爲什麼 「FMT:formatDate」 是不是變成HTML代碼? ??

回答

1

的正確方法在JSF實現這一目標是使用轉換器。使用<h:outputText>標籤,像這樣:

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

你會發現,並不是所有的JSTL標記在JSF的支持。 Facelets確實對核心標籤庫(forEach等)提供有限的支持,但它們可能無法按照您期望的方式工作。本文提供了一個很好的總結:http://drewdev.blogspot.com/2008/03/build-time-vs-render-time.html

+0

harto,非常感謝你的工作。 此外你的鏈接是非常有用的! – 2009-08-24 02:18:49

0

這是一個jstl標籤。它不需要翻譯。它從一個jsp編譯成一個servlet。

你認爲它被「翻譯」成什麼?

+0

我已編輯我的問題。也許你會更好地理解它。 我猜想應該生成這個HTML代碼「

24/08/2009

」。 不是在我的情況,這就是問題所在! 生成此HTML代碼: 2009-08-24 01:27:38