[Seasar-user:3725] [S2JSF] java.sql.Timestampのプロパティの扱いについて
Junichi Kato
[E-MAIL ADDRESS DELETED]
2006年 5月 31日 (水) 23:44:34 JST
横着者でして、S2DAOで利用しているDTOクラスを、S2JSFのフォーム用のDTOクラ
スを兼用していて、以下のような例外が起こっています。
DTOクラスには、Timestamp型のプロパティがあって、それをコンバータを使って
ブラウザ上で文字列として表示することはできていますが、逆にブラウザ上の入
力値をTimestamp型のプロパティに更新することができていません。
以下のように、フォームから送信ボタンを押すと例外が発生してしまいます。
(hogehoge.createDateはTimestamp型です。)
なんとか、Timestamp型のプロパティに値を設定したのですが、解決方法をご存
じの方いらっしゃいますでしょうか?
2006-05-31 23:34:04,752 [http-8080-Processor24] ERROR org.apache.myfaces.el.ValueBindingImpl - Cannot set value for expression
'#{hogehogeDto.createDate}' to a new value of type java.util.Date
javax.servlet.jsp.el.ELException: "java.util.Date" 型の値を "java.sql.Timestamp" 型に変換しようとしています
at org.apache.commons.el.Logger.logError(Logger.java:481)
at org.apache.commons.el.Logger.logError(Logger.java:498)
at org.apache.commons.el.Logger.logError(Logger.java:566)
at org.apache.commons.el.Coercions.coerceToObject(Coercions.java:799)
at org.apache.commons.el.Coercions.coerce(Coercions.java:343)
at org.apache.myfaces.el.ValueBindingImpl.coerce(ValueBindingImpl.java:568)
at org.apache.myfaces.el.ValueBindingImpl.setValue(ValueBindingImpl.java:338)
at javax.faces.component.UIInput.updateModel(UIInput.java:252)
at javax.faces.component.UIInput.processUpdates(UIInput.java:191)
at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:438)
at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:438)
at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:438)
at javax.faces.component.UIForm.processUpdates(UIForm.java:81)
at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:438)
at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:438)
at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:438)
at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:438)
at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:438)
at javax.faces.component.UIViewRoot.processUpdates(UIViewRoot.java:173)
at org.seasar.jsf.component.S2UIViewRoot.processUpdates(S2UIViewRoot.java:79)
at org.seasar.jsf.lifecycle.LifecycleImpl.updateModelValues(LifecycleImpl.java:157)
at org.seasar.jsf.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:94)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:109)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:62)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:60)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:112)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
開発環境
Apache Tomcat 5.5.16
S2 2.3.7
S2JSF 1.0.14
S2DAO 1.0.32
faces-config.xml
<converter>
<converter-for-class>java.util.Date</converter-for-class>
<converter-class>org.seasar.jsf.convert.S2DateTimeConverter</converter-class>
</converter>
hogehoge.dicon
<component name="inputDateTimeConverter" class="org.seasar.jsf.convert.S2DateTimeConverter">
<property name="pattern">"yyyy/MM/dd hh:mm:ss"</property>
</component>
hogehoge.html
<input type="text" id="entry_create_date"
m:label="投稿日時"
m:value="#{hogehogeDto.createDate}"
m:converter="#{inputDateTimeConverter}"
m:required="true"/>
───────────────────────────────
有限会社 グランテック
代表取締役
加藤 潤一 Junichi Kato
〒150-0011 東京都渋谷区東1-23-4
TEL : 03-3498-2011
FAX : 03-3498-2012
Mobile : 090-7238-6314
[E-MAIL ADDRESS DELETED] http://www.grandtech.jp/
Seasar-user メーリングリストの案内