使用F:ConvertDateTime转换时间时的日期错误
-
26-09-2019 - |
题
我对f:convertdateTime有问题,它似乎使用了错误消息 javax.faces.converter.datetimeconverter.date_detail 当我转换时间时(即它应该使用 javax.faces.converter.datetimeconverter.time_detail).
我猜是我使用模式,因此它不知道它是要转换的日期还是时间。这就是我正在尝试的(“ timepattern”是“ hh.mm”):
<f:convertDateTime type="time" pattern="#{timePattern}" />
即使指定了类型=“时间”,它仍然使用 date_detail 错误信息。这是一个错误还是我的假设应该使用 time_detail 错误消息错误,我必须创建自己的转换器?
解决方案
不幸的是,这也是 DateTimeConverter
Javadoc 在说。这是相关性的摘录:
如果一个
pattern
已指定,其语法必须符合规定的规则java.text.SimpleDateFormat
. 。这样的模式将用于解析 和type
,dateStyle
, , 和timeStyle
属性将被忽略。
但是我必须承认,JSF男孩必须在 f:convertDateTime
pdldoc 也是。从那里并不明显。我会向JSF男孩报告一个问题,以使他们澄清这一部分。
为了使它工作,最好的选择是不依赖于模式,而是 type
, dateStyle
和 timeStyle
(和地方),而是 或者 创建一个自定义日期时间转换器 extends DateTimeConverter
并相应地覆盖方法。
其他提示
您还必须在消息中定义Javax.faces.faces.converter.datetimeconverter.time。
看这里: http://www.icefaces.org/jforum/posts/list/16119.page 最后一个帖子。