关于未登录下单问题

来源:6-4 秒杀模型管理--活动模型与商品模型结合03

魄弹兽

2019-04-13 00:18

我的OrderController中

//获取登录信息
Boolean isLogin = (boolean) httpServletRequest.getSession().getAttribute("IS_LOGIN");
System.out.println(isLogin.booleanValue());
if(isLogin == null || !isLogin.booleanValue()){
    throw new BussinessException(EmBusinessError.USER_NOT_LOGIN,"用户还未登陆,不能下单");
}

如果没有登陆,执行到第一句时程序就会直接终止,控制台显示空指针异常,而不会走下面那个USER_NOT_LOGIN异常,前端获取到的errcode不是20003的USER_NOT_LOGIN,而是10002 UNKNOW_ERROR,这和老师的不一样,该怎么解决

写回答 关注

4回答

  • diu大
    2022-07-14 11:15:13

    boolean只能是false和true,不能为空,如果强转过去就会报空指针异常。所以一般都是使用Boolean包装类的

  • 慕娘0242551
    2021-05-31 21:48:19

    现在解决了吗



  • qq_慕仰9199122
    2020-07-15 19:28:58

    但是我的问题是  它返回来的是一个null  我直接就GAMEOVER了


    慕娘0242...

    返回null可能是sessionid不一致了(可以检查login和createorder的sessionid是否一致),也就是跨域问题,如果程序按照老师编写,可把google浏览器的SameSite by default cookies设置为disabled,但是最新的chrome已没有这个设置了,可以换为旧版本

    2021-06-01 19:29:10

    共 1 条回复 >

  • syousyou
    2019-05-17 17:38:06

    强转成 Boolean,而不是 boolean

SpringBoot构建电商基础秒杀项目

应用SpringBoot快速搭建拥有用户、商品、交易及秒杀活动的电商秒杀应用。

49541 学习 · 978 问题

查看课程

相似问题