日期查询java.util.Date cannot be cast to java.lang.String报这个错

我设置的是通过日期进行查询,sxrq1是从页面获得的失效日期,sxrq2是第二个查询条件,我要设置对sxrq1进行初始值默认显示为当前日期,功能已经实现,可是第一次页面可以出来,再点一下就报错了,不知道怎么改,
protected void populateQueryContext(RenderRequest request, EntityQueryContext queryContext) throws Exception {
queryContext.setPagination(true);
queryContext.getQueryData().put("bt", getParameter("bt", request));
SimpleDateFormat sdfDateFormat = new SimpleDateFormat("yyyy-MM-dd");
if(request.getPortletSession().getAttribute("sxrq1")==null){
request.getPortletSession().setAttribute("sxrq1", new Date());
request.setAttribute("sxrq1", sdfDateFormat.format(new Date()));
queryContext.getQueryData().put("sxrq1", sdfDateFormat.format(new Date()));
}
else{
queryContext.getQueryData().put("sxrq1",getParameter("sxrq1", request));
}
queryContext.getQueryData().put("sxrq2", getParameter("sxrq2", request));

} }

日期查询出现java.util.Date cannot be cast to java.lang.String的错误,可能的原因如下:
1.保存在数据库中的日期,不符合日期的规则,有可能包含有非法字符,比如中文或者其他标点符号。
2.日期超过了目前最大的期限。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-03

我感觉是

queryContext.getQueryData().put("sxrq1", sdfDateFormat.format(new Date())

有问题,这个是API

http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#format(java.util.Date, java.lang.StringBuffer, java.text.FieldPosition)


还有,你最好把错误发全了,要不很难给你看。

追问

  queryContext.getQueryData().put("sxrq1",getParameter("sxrq1", request));是这行出错else的时候

本回答被提问者采纳
第2个回答  2013-12-02
要确定哪行出的错,看看后台的LOG
相似回答