int i = Integer.parseInt(id); //为啥会空指针异常

@RequestMapping(value = "/login")
public ModelAndView login(HttpServletRequest request) {
String id = request.getParameter("id");
int i = Integer.parseInt(id); //这行代码空指针异常
User user = userService.findById(i);
System.out.println(user);
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("user");
modelAndView.addObject("user",user);
return modelAndView;

给 int i = Integer.parseInt(id)添加一个判断条件。
如有帮助,望采纳


@RequestMapping(value = "/login")
    public ModelAndView login(HttpServletRequest request) {
        String id = request.getParameter("id");
        if (!id.trim().equals("")&&id!=null){
//            判断如果id不为空
            int i = Integer.parseInt(id); //这行代码空指针异常
            User user = userService.findById(i);
            System.out.println(user);
            ModelAndView modelAndView = new ModelAndView();
            modelAndView.setViewName("user");
            modelAndView.addObject("user",user);
            return modelAndView;
        }else {
            //id如果为空,则给他赋值为0
            int i = 0; 
            User user = userService.findById(i);
            System.out.println(user);
            ModelAndView modelAndView = new ModelAndView();
            modelAndView.setViewName("user");
            modelAndView.addObject("user",user);
            return modelAndView;
        }
            
        }

String id = request.getParameter("id");后判断下id是否为空。

检查前端是传id 值是否为空

前端没穿id过来


@RequestMapping(value = "/login")
public ModelAndView login(HttpServletRequest request) {
// 使用getParameter前要先判空
if(StringUtils.isEmpty(request.getParameter("id")))
String id = request.getParameter("id");
int i = Integer.parseInt(id); //这行代码空指针异常
User user = userService.findById(i);
System.out.println(user);
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("user");
modelAndView.addObject("user",user);
return modelAndView;

判断的前后顺序错了,应该
解决方式1:
id!=null&&!id.trim().equals("")
解决方式2:
使用工具包 StringUtils.isNotBlank(id) , StringUtils来自 apache-common-lang3 或者spring-core中的字符串处理