问题:写登陆拦截控制器时,一直拦截失败
<input type="text" th:name="username" class="form-control" placeholder="Username" required="" autofocus="">
<input type="password" th:name="password" class="form-control" placeholder="Password" required="">
//Controller层
@RequestMapping("/user/login")
public String login(@RequestParam("username") String username,
@RequestParam("password") String password,
Model model,
HttpSession session){
if(username!=null &&password.equals("123456")){
//登陆成功
session.setAttribute("loginUser",username);
return "redirect:/main.html";
}else{
//登陆失败
model.addAttribute("msg","用户名或密码错误,请重新输入");
return "index";
}
}
发现问题:后查阅资料,发现input中的value默认值不是null,也不是0,而是"",所以if判断username相当于永真
解决方法:
1、可自己更正判断条件,也可借助StringUtils包的isEmpty方法
if(username!="" &&password.equals("123456")){
//登陆成功
session.setAttribute("loginUser",username);
return "redirect:/main.html";
}
2、也可借助StringUtils包的isEmpty()方法,下面放上源码
public static boolean isEmpty(@Nullable Object str) {
return str == null || "".equals(str);
}
2032

被折叠的 条评论
为什么被折叠?



