JS是如何判空的(叹号的神坑)

最近开发遇到了这样一个问题,需要将后端controller里model中的数据在前端展示,但是需要在展示之前做一个判断,如果model中没有数据,前端将不做显示,如果有数据就在前端弹出即可。这就是我的需求。

  • 后端controller代码
    // 添加到购物车
    @RequestMapping(value = “/addcart”,method = RequestMethod.GET)
    public String addcart(HttpServletRequest request, Integer id,Model model){

      HttpSession session = request.getSession();
      User userbean = (User) session.getAttribute("user");
      int c_id  = userbean.getId();
      
      // 根据c_id和s_id去查询该用户添加的商品,如果在该用户下面已经添加了这个商品,就不再进行添加
    
      if(buyDao.queryBuyBySIdAndCId(c_id,id)!=null){
          model.addAttribute("addMessage","该商品已经在购物车了");
          return "redirect:/shopping";
      }else{
          Buy buybean = new Buy();
          buybean.setState(0);
          buybean.setC_id(c_id);
          buybean.setS_id(id);
          buyDao.addBuy(buybean);
          model.addAttribute("addMessage","添加成功");
          return "redirect:/shopping";
      }
    

    }

  • 再看看前端我的错误代码

<script>        
	$(function(){            
	if(!"${addMessage}"){                    
	alert("${addMessage}");           
 	}   
  })</script>

然后前端死活不会弹出消息,本以为这样写,逻辑上一点问题都没有,然而并不是,我开始怀疑自己,为什么出不来,我找遍了所有的资料,终于,找到了原因,都是JS引起的问题。

请看以下截图,这是我在Google浏览器测试结果

一个叹号和两个叹号的区别

在这里插入图片描述
所以,多写一个叹号就可以了

<script>        
	$(function(){            
	if(!!"${addMessage}"){                    
	alert("${addMessage}");           
 	}   
  })</script>

希望帮到你们,如果帮到你了,可以关注我博客。

发布了32 篇原创文章 · 获赞 4 · 访问量 2364

猜你喜欢

转载自blog.csdn.net/weixin_44644403/article/details/103401448