@PostMapping("/user/updatepaw") @ResponseBody public ResponseResult updatepaw(@RequestParam("username") String username, @RequestParam("password1") String password1, @RequestParam("password2") String password2, HttpServletResponse response){ response.setHeader("Access-Control-Allow-Origin", "*");//设置响应头 ResponseResult rr=new ResponseResult(); User user=loginMapper.findUserByUsername(username); if (user.getPassword().equals(password1)){//判断数据库中的密码和输入的密码是否一致 if (!password1.equals(password2)){//旧的密码正确在判断新旧密码是否不相同,字符串进行判断的时候不能用==,要用equals,要用equals,要用equals,要用equals,password1不能为空否则会报空指针异常。比如登陆的时候要拿数据库的数据去对比输入的数据。数据库一定有的数据,输入的不一定有数据。 updatepaw.updatePassword(username,password2); rr.setState(1); rr.setMessage("修改密码成功!"); }else{ rr.setState(-1); rr.setMessage("新旧密码相同,请重新输入!"); } }else { rr.setState(-2); rr.setMessage("旧的密码输入不正确,请重新输入!"); } return rr; }
如果!password1.equals(password2)写成password1!=password2,会报的一个错误可能是, updatepaw.updatePassword(username,password2);这一行的问题,原因可能是返回值的问题,其实不是。改成!password1.equals(password2)就不会报错了。
PS:在idea里面。