[英]JSP session.getAttribute exception error
因此,我正在尝试使用会话制作购物车。 如果我第一次添加一个项目,它将成功,但是如果我添加另一个,它将作为异常错误返回。 (当您以成员身份登录时,我已经声明了session.setAttribute(“ i”,“ 0”))
这是doAddCart.jsp
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<%
String id = request.getParameter("id");
String qty = request.getParameter("qty");
String temp = (String)session.getAttribute("i");
int temp2 = Integer.parseInt(temp)+1;
session.setAttribute("i",temp2);
temp = Integer.toString(temp2);
session.setAttribute(temp,id);
session.setAttribute("q"+temp,qty);
response.sendRedirect("../product.jsp");
%>
这是我得到的错误
org.apache.jasper.JasperException: An exception occurred processing JSP page /Controller/doAddCart.jsp at line 5
2: <%
3: String id = request.getParameter("id");
4: String qty = request.getParameter("qty");
5: String temp = (String)session.getAttribute("i");
6: int temp2 = Integer.parseInt(temp)+1;
7: session.setAttribute("i",temp2);
8: temp = Integer.toString(temp2);
Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) root cause
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String org.apache.jsp.Controller.doAddCart_jsp._jspService(doAddCart_jsp.java:68) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) note The full stack trace of the root cause is available in the Apache Tomcat/7.0.29 logs.
有人对此有解决方案吗?
试试这条线
session.setAttribute("i", String.valueOf(temp2));
此行假定session [“ i”]是一个字符串:
String temp = (String)session.getAttribute("i");
此行将session [“ i”]设置为整数:
session.setAttribute("i",temp2);
删除第7行,并将其添加到底部,这将使属性保留为String:
session.setAttribute("i",temp);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.