我遇到f:convertDateTime的问题,当我转换时间时似乎使用错误消息 javax.faces.converter.DateTimeConverter.DATE_detail (即它应该使用 javax.faces .converter.DateTimeConverter.TIME_detail )。
我猜测的问题是,我使用的是一种模式,因此它不知道它是一个日期或时间,它正在转换。这就是我正在尝试的(“timePattern”是“hh.mm”):
<f:convertDateTime type="time" pattern="#{timePattern}" />
即使指定了type =“time”,它仍然使用 DATE_detail 错误消息。这是一个错误还是我的假设,它应该使用错误的 TIME_detail 错误消息,我必须创建自己的转换器?
答案 0 :(得分:3)
不幸的是,这也是DateTimeConverter
javadoc所说的。以下是相关摘录:
如果指定了
pattern
,则其语法必须符合java.text.SimpleDateFormat
指定的规则。此类模式将用于解析,type
,dateStyle
和timeStyle
属性将被忽略。
但我必须承认,JSF男孩必须在f:convertDateTime
pdldoc中明确指定它。从那里开始并不明显。我向JSF男孩报告一个问题,让他们澄清这一部分。
为了让它发挥作用,您最好的选择是不依赖于模式,而是依赖于type
,dateStyle
和timeStyle
(以及区域设置),或创建extends DateTimeConverter
的自定义日期时间转换器并相应地覆盖这些方法。
答案 1 :(得分:-1)
您还必须在邮件中定义javax.faces.converter.DateTimeConverter.TIME。
请看这里:http://www.icefaces.org/JForum/posts/list/16119.page在最后一个帖子之前发布一个帖子。