2010-09-01 64 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