呵呵丿哒
2017-11-09 06:29
采纳率: 100%
浏览 3.3k
已采纳

getSession出现空指针异常

ActionContext.getContext().getSession();直接报空指针异常
查资料好像是说session必须在Action里使用,因为我是做串口监听,查到数据准备保存到session里,所以报错了(ActionContext.getContext().getSession().put("screwObj",screwObj);报错),screwObj对象有值。
有大神知道具体是什么原因吗?要怎样弄才能存到session?
我是想把获取到的数据显示到页面上,准备用轮询读取session的值,有其它方法传值也行啊!!!

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • 呵呵丿哒 2017-11-10 01:15
    已采纳

    现在回过来看来一下,发现这个问题还没答案,所以现在说一下我的解决办法.
    因为我Session保存的是 串口对象 数据,原因是每次操作串口是需要打开串口对象的,而操作完了之后需要关闭对象,非常麻烦,所以想打开后,不关闭,把他保存在Session,等需要关闭时再取出来关闭,可测试时发现根本行不通,串口对象无法保存在Session,这一原因至今没找到.

    但处理法法是,不保存串口对象,程序运行后一直读取数据,关闭程序时自然结束
    Session保存的也不是串口对象,保存的是串口持续读取的数据,这个数据持续更新
    相当于串口操作是底层,不会改变,中间是数据池,串口的数据持续更新数据池,当程序需要数据时直接在数据池取就行了

    已采纳该答案
    打赏 评论
  • 小豆干 2017-11-09 06:54

    Action实现 servletRequestAware接口,然后从request对象获取session,然后传参传入到你的业务层,这样你就可以操作session了

    打赏 评论
  • 小豆干 2017-11-09 06:54

    你也可以直接用request返回到页面上使用啊

    打赏 评论
  • qq_35631287 2017-11-09 07:48

    在页面获取request返回的数据,然后页面接着使用

    打赏 评论
  • 独家de记忆 2017-11-09 09:08

    ActionContext.getContext().getSession().put("screwObj",screwObj);
    这里的空指针错误,有可能是ActionContext为空,有可能是ActionContext.getContext()为空,还有可能是ActionContext.getContext().getSession()为空,你定位了没,具体是哪个?

    打赏 评论
  • 深圳摆地摊er 2017-11-09 09:09

    你的action配置文件和获取session的方法不对应,,没有看到你的action配置文件,所以不好说,看看这个人写的,,很详细
    https://www.cnblogs.com/zhangzhifeng/p/4308331.html

    打赏 评论

相关推荐 更多相似问题