繁体   English   中英

JSP session.getAttribute异常错误

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

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