首先,请原谅我可怜的英语。 我想在我的反馈表单上搜索SendDate,但它不起作用,它说它无法解析字符串到目前为止。 这是我的代码: 1.Session bean:
public Group3KSC.Feedback[] searchLikeSendDateFeedback(Date senddate) {
try {
Query query = em.createQuery("SELECT f FROM Feedback f WHERE f.sendDate LIKE :sendDate");
query.setParameter("sendDate", "%" + senddate + "%");
List list = query.getResultList();
Feedback[] result = new Feedback[list.size()];
list.toArray(result);
return result;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
搜索表单:
<form action="../AdminSearchSendDateServlet" method="post">
<div> Search <input type="text" name="dbSearch" class="text-input datepicker"/>
<p class="button">
<input type="submit" value="Search" name ="action"/>
</p>
</div>
</form>
AdminSearchSendDateServlet(问题在这里,当我声明searchsenddate时)
HttpSession session = request.getSession();
String action = request.getParameter("action");
Context ctx = new InitialContext();
AdminSessionBeanLocal local = (AdminSessionBeanLocal) ctx.lookup("AdminSessionBeanLocalJNDI");
if (action.equals("Search")) {
SimpleDateFormat fBirth = new SimpleDateFormat("MM/dd/yyyy");
Date searchsenddate = fBirth.parse(request.getParameter("dbSearch").trim());
Feedback[] u = local.searchLikeSendDateFeedback(searchsenddate);
session.setAttribute("Username", u);
response.sendRedirect("Admin/FeedbackList.jsp");
}
例如:数据库中的这条记录是:2014-05-25 00:00:00.000,当我在搜索表单中搜索日期选择器时,它会输入05/25/2014,当我点击搜索按钮时,它显示那些错误
java.lang.ClassCastException:java.lang.String无法强制转换为java.util.Date
感谢您的帮助
答案 0 :(得分:0)
DB上的'sendDate'是Date列吗?您是否尝试将'senddate'参数作为日期对象而不是字符串传递?
我希望它有所帮助。