我的春季验证停止工作,我不知道为什么



我最近正在使用Spring Validation,我使用CodeTutrs示例使其工作,然后继续到我的代码的其他部分,当我回到它时,它不再在点击数据库之前验证用户输入。所以我得到Hibernate错误说,我不能输入"null"值。

下面是我的JSP代码。我试图恢复到我的原始代码,但它仍然不会验证。

          <form:form action="regSubmit" method="post" modelattribute="registeredUsers">
               <div style="float:left; margin-left:200px">
                <font size="5">Register</font><br><br>
                User Name: <input type="text" name="username"/><font color="red"><form:errors path="username" cssclass="error"/></font><br>
                Password: <input type="password" name="password"/><font color="red"><form:errors path="password" cssclass="error"/></font><br>
                First Name: <input type="text" name="first_name"/><font color="red"><form:errors path="first_name" cssclass="error"/></font><br>
                Last Name: <input type="text" name="last_name"/><font color="red"><form:errors path="last_name" cssclass="error"/></font><br>
                Email: <input type="text" name="email"/><font color="red"><form:errors path="email" cssclass="error"/></font><br>
                <input type = "submit" value = "Submit"/>
               </div>
         </form:form>

控制器的代码如下:

package controllers;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import dao.RegisteredUsers;

    @Controller
    @RequestMapping("/regSubmit")
    public class RegisterController
    {
        String next;
        @RequestMapping(method=RequestMethod.POST)
        public String regUser(@Valid RegisteredUsers registeredUsers, BindingResult result,  ModelMap map, HttpServletRequest request) throws Exception
        {
            System.out.println("Inside Register controller");
            String user = request.getParameter("username");
            String pass = request.getParameter("password");
            String fname = request.getParameter("first_name");
            String lname = request.getParameter("last_name");
            String email = request.getParameter("email");
            dao.RegisterUser.registerUser(user, pass, fname, lname, email);

            if (result.hasErrors())
            {
                return "RegisterLogin";
            }
            map.addAttribute("message", "Succesfully saved User "+ registeredUsers.toString());
            /*map.addAttribute("user", user);*/
            /*dao.Selector.whatToDo(user, pass, fname, lname, email);*/
            next = "RegSuccess";
            return next;
        }
    }

dao。registredusers,是我的POJO。

我的POJO的代码如下:

    @Component
    @Entity(name="REGISTERED_USER")
    public class RegisteredUsers 
     {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
int user_id;
@Column
    @NotEmpty
    String username;
    @NotEmpty
    String password;
    @NotEmpty
    String first_name;
    @NotEmpty
    String last_name;
    @NotEmpty @Email
    String email;
            /*getters and setters*/

我的RegisterUser的代码如下:

   public class RegisterUser 
  {
public static String username;
public static String password;
public static String fname;
public static String lname;
public static String email;
public static void registerUser(String username, String password, String first_name, String last_name, String email)
{
    ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-user.xml");
    UserRoster roster= (UserRoster)ctx.getBean("user");
    RegisteredUsers u = new RegisteredUsers();
    //from register controller to set the user information 
    u.setUsername(username); 
    u.setPassword(password);
    u.setFirst_name(first_name);
    u.setLast_name(last_name);
    u.setEmail(email);
    // actually add the user to the DB
    roster.addUser(u);

}

我已经检查了几次了,还是不知道我的代码哪里出错了。

任何帮助都将非常感激!

能否显示您的POJO类

顺便说一句,点击这个链接

http://www.mkyong.com/spring-mvc/spring-3-mvc-and-jsr303-valid-example/

这是一个很好的例子。

1)在jsp上,您没有显示任何错误2)您没有显示POJO,如果没有,请对它们进行验证。3)在保存结果之前使用dao检查高优先级的错误,即在函数

开始时

相关内容

最新更新