简体   繁体   English

在Servlet(EJB3,Jboss)上将字符串解析为Date

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM