f:convertdatimeで時間を変換する場合の日付エラー
-
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}" />
type = "time"が指定されていますが、それでも 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.converter.datetimeconverter.timeを定義する必要があります。
ここを見て: http://www.icefaces.org/jforum/posts/list/16119.page 最後の1つの投稿の1つの投稿。