java.lang.NullPointerException:将字符串参数从url解析为Long,Spring时为null

时间:2017-09-27 12:03:22

标签: java spring-boot

这是我的控制器,它从网址获取id:

@RequestMapping(value = "/user/users", method = RequestMethod.GET, params = {"getId"})
@ResponseBody
public ModelAndView getClientStat(@RequestParam(value="getId", required = true) String getId) {
    ModelAndView modelAndView = new ModelAndView();

    long userId=0;
    userId=Long.parseLong(getId);
    Client c=userService.getUserById(userId);

    modelAndView.addObject("userName", c.getName() );

    modelAndView.setViewName("user/users");
    return modelAndView;
}

这会返回一个空指针异常,但事情就是当我把getID放在modelAndView中时,就像这样:

    modelAndView.addObject("id",getId)

它确实添加了响应ID。 我怎样才能解决这个问题 ?我认为问题在于解析字符串时,因为当删除该部分时,它运行良好。

1 个答案:

答案 0 :(得分:0)

parseLong不能返回null - 它返回long值或抛出异常。所以你的问题很可能不是字符串解析。

检查NullPointerException发生在哪一行。我希望userService为空,或者返回的客户端c为空。我猜它可能c可能是空的 - 也许你有一个你的用户服务找不到的ID,结果返回null ...