表单验证器--由(springmvc.hibernate配合而来)

1.在pom.xml中添加应有的jar包。

因为此验证器由springmvc 和hibernate共同配合,需要在springmvc中书写配置文件,所以用到javax.validation jar包 验证器由hibernate提供所以需要添加hibernate-validator jar包。



javax.validation
validation-api
1.1.0.Final



org.hibernate
hibernate-validator
5.2.5.Final

2.在springmvc的fc-servlet.xml配置文件中书写下面的配置器,同时需要添加mvc的限定名


class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/>

 

添加mvc限定名
xmlns:mvc="http://www.springframework.org/schema/mvc"

http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd"

3.在model中的属性上面书写正则表达式 或者 past futhrue等关键字。

package com.lin.dang.dto;

import java.io.Serializable;

import javax.validation.constraints.Pattern;

public class UserDto implements Serializable {
@Pattern(regexp = "\w{4,20}")
private String username;
private String password;

public String getUsername() {
    return username;
}


public void setUsername(String username) {
    this.username = username;
}

public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

}

在contrller中书写代码
package com.lin.dang.controller;

import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.Errors;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.lin.dang.biz.UserService;
import com.lin.dang.dto.UserDto;
import com.lin.dang.model.User;

@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;

@RequestMapping("/to_login")
public String toLogin() {
    return "login";
}

@RequestMapping("/to_register")
public String toReg() {
    return "register";
}

// RequestParam 请求参数 来自于表单 或者?后面的一节
// cookieValue 来自于cookie
// RequestHeader -请求头
// PathVariable-路径参数("/student/12305")

@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(@Valid UserDto user, Errors errors, Model model, HttpServletRequest req) {
    if (!errors.hasErrors()) {
        if (userService.login(user)) {
            System.out.println(userService.login(user));
            req.getSession().setAttribute("username", user.getUsername());
            return "redirect:/index.do";
        } else {
            model.addAttribute("hint", "用户名或密码错误");
            return "login";
        }
    } else {
        model.addAttribute("hint", "请输入有效地信息(4-20位)");
        return "login";
    }

}

@RequestMapping(value = "/reg", method = RequestMethod.POST)
public String register(User user) {
    userService.register(user);
    return "redirect:/index.do";
}

}

你可能感兴趣的:(表单验证器--由(springmvc.hibernate配合而来))