今天在調試的過程中,發現了一個bug:
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Stringorg.apache.jsp.complaintSearchList_jsp._jspService(complaintSearchList_jsp.java:93)org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)javax.servlet.http.HttpServlet.service(HttpServlet.java:717)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)javax.servlet.http.HttpServlet.service(HttpServlet.java:717)com.tgx.servlet.ComplaintServlet.doGet(ComplaintServlet.java:120)com.tgx.servlet.ComplaintServlet.doPost(ComplaintServlet.java:142)javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
英語不好就是硬傷啊,開始的時候沒有讀懂,以為是String不能轉換成Integer。就在那裡納悶,因為以前寫過好多遍都沒有問題的。
之後查了一下度娘,明白了。那個Exception的意思應該是,Integer類型不能將其轉換為String。因為以前是這樣的。request.setParameter("sdf"); 讀取的時候 String dfd = request.getParameter("sdf"); 這樣是合法的。因為裡面本來就是儲存的是String類型資料。
而我這次是request.setAttribute("pageNow", pageNow); 讀取的時候,String s_pageNow = (String)request.getAttribute("pageNow");這樣就不行了。因為setAttribute那個資料什麼object類型,讀取的時候就應該用對應的資料類型讀取出來。但是這裡不能用int 讀取,應為它不是一個object類型。應該用Integer,然後再轉化為int資料類型。
解決完畢。