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