我的Spring Validation停止工作,我无法弄清楚原因

时间:2014-03-10 22:54:19

标签: hibernate validation spring-mvc

我最近使用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.registeredUsers,是我的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);


}

我已经过了几次,无法弄清楚我的代码出错了。

真的很感激任何帮助!

1 个答案:

答案 0 :(得分:0)

你能展示你的POJO课程

吗?

BTW请点击此链接

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

这是一个完美的例子。

1)在jsp上你没有显示任何错误 2)你没有显示POJO,如果没有完成,就对它们进行验证。 3)在使用dao检查保存结果之前检查高优先级的错误,即在功能启动时