在Spring MVC中注册

问题描述

我是Spring的新手,试图创建注册登录模块,遇到了很多问题

Registration.jsp:-查看注册表格

<div class="container">
  <form:form action="doRegister" method="post" modelattribute="Login">
  <h2>Create a FREE account</h2>
  <h3>already have an account?<a href="/SurveyIt/Login"><span> Login </span></a></h3>
  <div class="form-group">
    <label for="username">Username:</label>
    <form:input type="text" class="form-control" path="username"/>
  </div>
  <div class="form-group">
    <label for="pwd">Password:</label>
    <form:input type="password" class="form-control" path="password"/>
  </div>
  <div class="form-group">
    <label for="email">Email address:</label>
    <form:input type="email" class="form-control" path="email"/>
  </div>
  <div class="form-group">
    <label for="fname">First Name:</label>
    <form:input type="text" class="form-control" path="firstname"/>
  </div>
  <div class="form-group">
    <label for="lname">Last Name:</label>
    <form:input type="text" class="form-control" path="lastname"/>
  </div>
  <button type="submit" class="btn btn-primary">Submit</button>
</form:form>

注册控制器:=>包含调用注册表单并验证用户是否存在的方法

@Controller
public class getRegistrationController {
    @Autowired
    RegistrationService registrationservice;
    
        @RequestMapping("/Registration")
        public ModelAndView showRegistration(HttpServletRequest req,HttpServletResponse res) {
            ModelAndView mav = new ModelAndView("Registration");
            mav.addobject("Login",new Login());
            return mav; 
        }
    
        @RequestMapping(value = "/doRegister",method = RequestMethod.POST)
        public String doRegister(@modelattribute("Login") Login login,HttpServletRequest req,HttpServletResponse res)
        {
        //  Login login = new Login();
            if(registrationservice.validateUser(login).equals(null))
                registrationservice.doinsert(login);
            return "Login";
        }
    }

Registration Service:= Registration service implementation class 

@Service("registrationservice")
public class RegistrationServiceImp implements RegistrationService{
    
    RegistratioDao obj;
    
    @Autowired
    public void setobj(RegistrationDaoImp obj) {
        this.obj = obj;
    }
        public void doinsert(Login login) {
        obj.doinsert(login);
}
    public Login validateUser(Login login) {
        return obj.validateUser(login);
    }
}

注册DAO实现类:-这是注册的实现类dao有2种方法来检查用户是否存在(如果未注册的话)

@Autowired
    DataSource datasource;

    @Autowired
    JdbcTemplate jdbctemplate;
    public void doinsert(Login login)
    {
        String sql = "insert into login (username,password,email) values (?,?,?)";
                jdbctemplate.update(sql,new Object[] {login.getUsername(),login.getpassword(),login.getEmail()});
    }
    public Login validateUser(Login login)
    {
        String sql = "select * from login where username = ? and password = ?";
        List<Login> user = null;
    /*  System.out.println("username"+ login.getUsername());
        System.out.println("password"+ login.getpassword());
        System.out.println("email"+ login.getEmail());
        System.out.println("firstname"+ login.getFirstname());
        System.out.println("lastname"+ login.getLastname());   */
        user = jdbctemplate.query(sql,login.getpassword()},new LoginMapper());
        return user.size() > 0 ? user.get(0):null;
    }

登录映射器类:=>行映射器类

public class LoginMapper implements RowMapper{

    public Object mapRow(ResultSet rs,int arg1) throws sqlException {
        Login login = new Login();
        login.setUsername(rs.getString("username"));
        login.setPassword(rs.getString("password"));
        login.setEmail(rs.getString("email"));
        login.setFirstname(rs.getString("firstname"));
        login.setLastname(rs.getString("lastname"));
        return login;
    }

}

我的问题是执行它时显示错误

org.springframework.web.util.nestedservletexception:请求处理失败;嵌套的异常是java.lang.NullPointerException org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1013) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:908) javax.servlet.http.HttpServlet.service(HttpServlet.java:652) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882) javax.servlet.http.HttpServlet.service(HttpServlet.java:733) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)