[英]parse String to Date on servlet (EJB3, Jboss)
First of all, please forgive my poor english. 首先,请原谅我的英语不好。 I want to search like SendDate on my feedback form, but it don't work, it said it can't parse string to date. 我想在反馈表单上进行类似于SendDate的搜索,但是它不起作用,它表示无法解析字符串。 Here is my code: 1.Session bean: 这是我的代码: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;
}
Search form: 搜索表格:
<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 (The Problem is here, when I declare searchsenddate) 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");
}
ex: this record in database is:2014-05-25 00:00:00.000, when I search it in search form with date picker, it will input 05/25/2014, and when I'm click search button, it show those error 例如:数据库中的记录是:2014-05-25 00:00:00.000,当我用日期选择器在搜索表单中搜索它时,它将输入05/25/2014,当我单击搜索按钮时,它会显示那些错误
java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Date java.lang.ClassCastException:无法将java.lang.String强制转换为java.util.Date
Thanks for your help 谢谢你的帮助
The 'sendDate' on DB is a Date columns? DB上的“ sendDate”是“日期”列吗? Have you tried pass the 'senddate' param as a date object instead of a string? 您是否尝试过将'senddate'参数作为日期对象而不是字符串传递?
I hope it help. 希望对您有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.