2010-09-01 53 views
0

我有問題與f:convertDateTime,它似乎使用錯誤消息javax.faces.converter.DateTimeConverter.DATE_detail當我轉換時間(即它應該使用javax .faces.converter.DateTimeConverter.TIME_detail)。轉換時間與f時的日期錯誤:convertDateTime

這個問題,我猜測,是我使用了一種模式,因此它不知道它是一個日期或時間,它是綁定轉換。這就是我想要(「timePattern」是「hh.mm」):

<f:convertDateTime type="time" pattern="#{timePattern}" /> 

即使指定類型=「時間」,它仍然採用了DATE_detail錯誤消息。這是一個錯誤還是我的假設,它應該使用TIME_detail錯誤信息錯誤,我必須創建我自己的轉換器?

回答

3

不幸的是,這也是DateTimeConverter javadoc告訴的。下面是相關摘錄:

如果已指定pattern,則其語法必須符合java.text.SimpleDateFormat指定的規則。這種模式將用於解析,type,dateStyletimeStyle屬性將被忽略。

但是我必須承認,JSF男生也必須在f:convertDateTime pdldoc中明確指定它。從那裏不明顯。我會向JSF男生報告一個問題,讓他們澄清這一部分。

爲了得到它的工作,你最好的選擇是要麼不依賴於模式,但在typedateStyletimeStyle(和環境)來代替,創建一個自定義日期時間轉換器extends DateTimeConverter並覆蓋方法因此。

+0

謝謝,很好的回答!我最終創建了一個轉換器,但希望避免它。 – Vetle 2010-09-03 06:31:46

-1

您還需要在消息中定義javax.faces.converter.DateTimeConverter.TIME。

看這裏:http://www.icefaces.org/JForum/posts/list/16119.page在最後一個之前的職位。

+0

它被定義,並且f:convertDateTime使用它,如果它與type =「time」和* no *模式一起使用。這裏的問題是,當使用type =「time」*和* pattern =「whatever」時,將使用DATE錯誤消息。 – Vetle 2010-09-02 06:36:13