[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 メーリングリストの案内