报java.lang.NullPointerException 错误!!!??

cstsl 2010-08-02 10:15:19
HttpSession session=request.getSession(false);

高手们看看吧! 为什么 啊?
...全文
249 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
cstanshulin 2010-08-04
  • 打赏
  • 举报
回复
等待中。。。。
cstsl 2010-08-03
  • 打赏
  • 举报
回复
private HttpServletRequest request=ServletActionContext.getRequest();

我这里获取的request 是这样的 为什么还要报空???
closewbq 2010-08-03
  • 打赏
  • 举报
回复
真晕了。
你想要使用request你可以通过:ServletActionContext.getRequest()获取
或者实现ServletRequestAware
cstsl 2010-08-03
  • 打赏
  • 举报
回复
为什么
public class CartItemsAction extends ActionSupport{
private ShoppingBean bean=new ShoppingBean();//提交后数据都保存在beans中
private CartItemsBean cartitems=new CartItemsBean();
private HttpServletRequest request=ServletActionContext.getRequest();
public String cart()
{
HttpSession session=request.getSession();
System.out.println(session);
Map cart=(Map)session.getAttribute("cart");
// 如果购物车不存在则创建
if(cart==null)
{
cart=new HashMap();
session.setAttribute("cart", cart);
}
//判断书籍是否在购物车中
CartItemsBean cartItem=(CartItemsBean)cart.get(bean.getId());
if(cartItem!=null)
{
cartItem.setQuantity(cartItem.getQuantity()+1);
}
else
{
cart.put(bean.getId(), new CartItemsBean(bean,1));
}
return SUCCESS;
}
为什么红色的地方还是报:java.lang.NullPointerException
thegodofwar 2010-08-03
  • 打赏
  • 举报
回复
查文档......
cstsl 2010-08-03
  • 打赏
  • 举报
回复
明白了 但是 怎么在Jsp页面输出对象的各个属性?? 这是个Map 集合哦!
<s:itertor value="">
.....
</s:itertor>


SuperNovice 2010-08-03
  • 打赏
  • 举报
回复
当用户访问时才生产request,也就是说当访问cart()方法时才生成对应的request对象,你那个全局的request要么就是null,要么就是上一次访问的request,明白?
cstsl 2010-08-03
  • 打赏
  • 举报
回复
public class CartItemsAction extends ActionSupport{
private ShoppingBean bean=new ShoppingBean();//提交后数据都保存在beans中
private CartItemsBean cartitems=new CartItemsBean();
private HttpServletRequest request=ServletActionContext.getRequest();
public String cart()
{
System.out.println("--------------------------"+request);
HttpSession session=request.getSession();
....
--------------------------null
2009-8-3 13:54:21 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
java.lang.NullPointerException
at com.action.CartItemsAction.cart(CartItemsAction.java:25)


为什么会这样捏? 难道 获取request错了么?
cstsl 2010-08-03
  • 打赏
  • 举报
回复
HttpSession session=request.getSession();

是这句话报空!!
同光和尘 2010-08-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 cstsl 的回复:]
private HttpServletRequest request=ServletActionContext.getRequest();

我这里获取的request 是这样的 为什么还要报空???
[/Quote]

这样写应该没错,估计不是报这里的错
dragon_java_li 2010-08-02
  • 打赏
  • 举报
回复
把false去掉
liujun822 2010-08-02
  • 打赏
  • 举报
回复
lz 你没有去获得request的对象,
private HttpServletRequest request=ServletActionContext.getRequest();
cstsl 2010-08-02
  • 打赏
  • 举报
回复
public class CartItemsAction extends ActionSupport{
private ShoppingBean bean=new ShoppingBean();//提交后数据都保存在beans中
private CartItemsBean cartitems=new CartItemsBean();
private HttpServletRequest request;
public String cart()
{
HttpSession session=request.getSession(false); Map cart=(Map)session.getAttribute("cart");
// 如果购物车不存在则创建
if(cart==null)
{
cart=new HashMap();
session.setAttribute("cart", cart);
}
//判断书籍是否在购物车中
CartItemsBean cartItem=(CartItemsBean)cart.get(bean.getId());
if(cartItem!=null)
{
cartItem.setQuantity(cartItem.getQuantity()+1);
}
else
{
cart.put(bean.getId(), new CartItemsBean(bean,1));
}
return SUCCESS;
}

红色地方报错

顺便看下其余的地方有没有错误咯!! 呵呵
t2xingzhe 2010-08-02
  • 打赏
  • 举报
回复
最好加个判断,如果这个数据取不到的话怎么办,就不会报错了
危险的大猫 2010-08-02
  • 打赏
  • 举报
回复
写false .如果没有session,不会自动生成新的session,当然就返回null了.记得是这样,你可以查一下文档

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧