[Seasar-user:12599] [SAStruts]BeanMapを使った未入力の日付検索でエラー

出羽 健一 [E-MAIL ADDRESS DELETED]
2008年 1月 22日 (火) 19:05:48 JST


出羽です。

BeanMapを使って日付の範囲検索をしたところ、
日付入力が空の場合は以下の例外が出てしまいます。

java.text.ParseException: Unparseable date: ""
	at java.text.DateFormat.parse(DateFormat.java:335)
	at org.seasar.framework.util.DateConversionUtil.toDate(DateConversionUtil.java:89)
	at org.seasar.framework.util.DateConversionUtil.toDate(DateConversionUtil.java:77)
	at org.seasar.framework.util.DateConversionUtil.toDate(DateConversionUtil.java:59)
	at org.seasar.framework.util.SqlDateConversionUtil.toDate(SqlDateConversionUtil.java:52)
	at org.seasar.framework.util.SqlDateConversionUtil.toDate(SqlDateConversionUtil.java:38)
	at org.seasar.extension.jdbc.types.SqlDateType.toSqlDate(SqlDateType.java:87)
	at org.seasar.extension.jdbc.types.SqlDateType.toText(SqlDateType.java:94)
	at org.seasar.extension.jdbc.util.BindVariableUtil.getBindVariableText(BindVariableUtil.java:152)
	at org.seasar.extension.jdbc.util.BindVariableUtil.getCompleteSql(BindVariableUtil.java:100)
	at org.seasar.extension.jdbc.query.AbstractQuery.logSql(AbstractQuery.java:159)
	at org.seasar.extension.jdbc.query.AbstractSelect.getResultList(AbstractSelect.java:164)
	at sample.action.EmpAction.list(EmpAction.java:85)


Actionクラスの抜粋は次のとおりです。

public class EmpAction {
	
	<<省略>>
		
	@DateType
	public String where_hireDate_GE;
	
	@DateType
	public String where_hireDate_LE;
	
	@Execute(validator = false)
	public String list() {
		empItems = jdbcManager.from(Emp.class)
					.leftOuterJoin("dept")
					.where(Beans.createAndCopy(BeanMap.class, this).prefix("where_").execute())
					.orderBy("hireDate")
					.getResultList();
		return "list.jsp";
	}
}

環境はSuper Agile Strutsブランク(sa-struts-blank-rc7.zip)です。

以上、ご確認の程、よろしくお願いします。



Seasar-user メーリングリストの案内