java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String

今天在調試的過程中,發現了一個bug:

java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
	org.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數據類型。

解決完畢。

發佈了67 篇原創文章 · 獲贊 3 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章