我是 Spring 和 Hibernate 新手 我正在尝试向我的网络应用程序添加登录功能。我制作了一个表格并尝试像这样阅读表格,
@Autowired
public UserDAO userList;
@RequestMapping(value="index/login/result" , params="go")
public String Authenticate(@RequestParam("Username") String name,
@RequestParam("Password") String password,
Model theModel){
List<User> users= userList.getUsers();
for(User x:users){
if(x.getUsername().equals(name)&&x.getPassword().equals(password)){
return "success"; //proceeds to next page
}
}
return "index"; // returns to home page
}
但是没有任何作用,它永远不会进入 if block ,并且我已经确认 x.getUsername() 和 x.getPassword() 的值分别与名称和密码匹配。我能够成功读取数据库,所以我认为我的 DAO 没有任何问题。我正在使用 Eclipse 与 Tomcat 8 和 mysql。我不知道我错在哪里。
编辑1
我解决了问题,但我仍然无法找出问题的原因。我这样改变了 if 条件,
if(x.getUsername().equals(name.trim())&&x.getPassword().equals(password.trim()))
我比较了 x.getUsername() 和 (name) 的哈希码,结果发现它们是不同的,即使两个字符串看起来相同。所以我使用了trim方法来删除空格。那么谁能告诉我是什么导致了这些字符串的哈希码的变化。
最佳答案
我能想到的可能有两个问题:
无法访问 success.jsp。
如果条件不满足。
如果是if条件的问题则返回index.jsp。所以至少你应该能够看到其中一个jsp。
如果 success.jsp 无法访问,请检查它是否与“index”位于同一文件夹中。
如果没有任何 jsp 可以访问,请检查您的调度程序 servlet 并确保您已正确声明基本包。
关于java - 无法将请求的参数与数据库条目匹配[Spring MVC 和 Hibernate ORM],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40129219/