gpt4 book ai didi

java - spring mvc Controller 类不工作

转载 作者:行者123 更新时间:2023-12-02 04:28:44 25 4
gpt4 key购买 nike

在我的项目中,我有一个包含电子邮件和密码字段的页面。我的要求是,填写用户名和密码字段后,当我按提交时,它将检查数据库表中的用户名和密码字段..如果匹配,则将转到个人资料页面。

所以,我已经这样做了:

我的 Controller 类是:

@RequestMapping(value = "/signin", method = RequestMethod.POST)
public String dologin(@ModelAttribute("student") Student student,HttpServletRequest request,
HttpServletResponse response,BindingResult result) {


try{
studentService.LoginStudent(student.getEmail(), student.getPassword());

if (result.hasErrors()) {
return "signin";
}
}
catch(ConstraintViolationException e){

}

return "profile";
}

我的 StudentServiceimpl.java 是:

public Student LoginStudent(String email, String password) {

Student student = new Student(email,password);


studentDao.LoginStudent(student);

return student;
}

StudentDao.java 是:

public void LoginStudent(Student student) {
String hql = "select student_id from student where email = :email and password = :password";

sessionFactory.getCurrentSession().createSQLQuery(hql)
.setParameter("email", student.getEmail())
.setParameter("password", student.getPassword());

}

现在,问题是如果我输入任何电子邮件 ID 和密码,它会直接转到个人资料页面。如果字段为空,那么它也会转到个人资料页面。为什么它不检查字段?

最佳答案

我认为无论你对 result.hasErrors() 做什么都不好

我认为如果出现如下情况,您应该对待它:

 Student student =      studentService.LoginStudent(student.getEmail(), student.getPassword());




if (student != null) {
return "signin";
}

BindingResult 类在这里不合适。它对于表单验证很有用(通过 validate 方法)。

请阅读What is the use of BindingResult interface in spring MVC?

此外,在您的 hibernate 代码中,您没有执行查询,请按如下方式执行

Query query  = sessionFactory.getCurrentSession().createSQLQuery(hql)
.setParameter("email", student.getEmail())
.setParameter("password", student.getPassword());

return query.list();

以上程序仅供引用,您需要对代码进行其他工作,例如解析等。

关于java - spring mvc Controller 类不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31801318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com