-
Type: Improvement
-
Resolution: Won't Fix
-
Priority: Major
-
None
-
Affects Version/s: 0.4.0
-
Component/s: Framework
-
None
S2S2ClickUtils#copyObjectToFormでjava.util.DateのフィールドをDateFieldにコピーするとIllegalArgumentExceptionが発生します。
org.seasar.framework.beans.util.Copy#executeを使うとSeasar2標準のDateConverterが適用されてしまい、java.util.Dateがjava.lang.Stringへと変換されてしまっているようです。
ひとまず、org.seasar.framework.beans.util.Copy#findDefaultConverterをオーバーライドしてnullを返すようにしたところ、上記問題は回避できました。
標準のDateConverterを回避するよい方法はないでしょうか?
スタックトレースは以下の通りです。
[Click] [error] handleException: java.lang.IllegalArgumentException: Invalid object class: java.lang.String
at net.sf.click.extras.control.DateField.setValueObject(DateField.java:511)
at net.sf.click.util.ClickUtils.copyMapToFields(ClickUtils.java:2038)
at net.sf.click.util.ClickUtils.copyObjectToForm(ClickUtils.java:844)
at org.seasar.s2click.util.S2ClickUtils.copyObjectToForm(S2ClickUtils.java:97)
at org.seasar.s2click.control.S2ClickForm.copyFrom(S2ClickForm.java:309)
at org.seasar.s2click.control.S2ClickForm.copyFrom(S2ClickForm.java:314)