小弟我在做最基本的struts的网上书店,在做一个购物车(ShoppingCart),其中有一个方法addItem(ShoppingItem item),此方法是把书本对象(ShoppingItem)加入其中,书本对象中有id主要属性,书本之间靠id识别,count属性记录书本数目,书目在ShoppingCart中存放是存放在其中的一个Hashmap items中的,以id为key
public class ShoppingCart {
private HashMap items;
public void addItem(ShoppingItem item){ //往购物车里增加书本对象,或者增加某本书的数目
if(items.containsKey(item.getId())){ /*取出要加入书本的id,如果在hashmap中找到相应的编号,说明
此书在购物车中已经有了,则增加书的数目 */
((ShoppingItem)items.get(item.getId())).addCount();//根据id,从hashmap中取出对应的ShoppingItem,并加1
}else{ /*如果找不到相应的编号,则说明此书在购物车中不存在,
就把item加入购物车*/
items.put(item.getId(), item);
}
}public void deleteItem(ShoppingItem item){
((ShoppingItem)items.get(item.getId())).cutCount();
}
public Collection getItems(){
return items.values();
}我在页面表现层中调用((ShoppingCart)(request.getSession().getAttribute("cart"))).addItem(item);时出现下面的错误:type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:33)
root cause java.lang.NullPointerException
Model.ShoppingCart.addItem(ShoppingCart.java:12)
Action.AddIntoCartAction.execute(AddIntoCartAction.java:27)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:33)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
是不是说我的addItem()函数出错了?我是把购物车当作一个javabean存放在页面里了用了:<jsp:useBean id="cart" scope="session"class="Model.ShoppingCart"/>是不是不能这么用的?请帮我看看,谢谢了!
public class ShoppingCart {
private HashMap items;
public void addItem(ShoppingItem item){ //往购物车里增加书本对象,或者增加某本书的数目
if(items.containsKey(item.getId())){ /*取出要加入书本的id,如果在hashmap中找到相应的编号,说明
此书在购物车中已经有了,则增加书的数目 */
((ShoppingItem)items.get(item.getId())).addCount();//根据id,从hashmap中取出对应的ShoppingItem,并加1
}else{ /*如果找不到相应的编号,则说明此书在购物车中不存在,
就把item加入购物车*/
items.put(item.getId(), item);
}
}public void deleteItem(ShoppingItem item){
((ShoppingItem)items.get(item.getId())).cutCount();
}
public Collection getItems(){
return items.values();
}我在页面表现层中调用((ShoppingCart)(request.getSession().getAttribute("cart"))).addItem(item);时出现下面的错误:type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:33)
root cause java.lang.NullPointerException
Model.ShoppingCart.addItem(ShoppingCart.java:12)
Action.AddIntoCartAction.execute(AddIntoCartAction.java:27)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:33)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
是不是说我的addItem()函数出错了?我是把购物车当作一个javabean存放在页面里了用了:<jsp:useBean id="cart" scope="session"class="Model.ShoppingCart"/>是不是不能这么用的?请帮我看看,谢谢了!
解决方案 »
- Ajax处理中文出现乱码 请帮忙看看是哪里的错误 谢谢
- struts做一个短消息系统
- mysql默认值问题
- 怎样实现类似邮箱动态添加多个不同附件的功能呢
- 在线等(100),图片上传的问题,在使用了enctype="multipart/form-data"后,在URL?...上传值时出错,必须在form里才行
- 小弟初学JSP,连接数据库出问题,请各位大哥指点!!
- 怎样把jsp各个控件中显示的内容导入到word文档中去!!!!(高手请进)
- 这样的网页如何做?急...
- 奇怪的问题,请各路高手帮帮我
- 关于JavaBean无法建立的问题,在线等待,马上给分
- 想在五秒钟之后加载方法
- 总是失败,就是没法添加数据库
设置断点调试一下代码,看看传入的item对象是否为null!
以后碰到java.lang.NullPointerException
这样的,别去问别人
我在学java的时候,老师跟我们说,这样的问题,只能问一次,以后别来问我,自己看看就知道了
肯定是Model.ShoppingCart.addItem(ShoppingCart.java:12) 这个类里的12行有空指正马
以后别再问这样的了 自己要学会调试