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

2017-03-25  本文已影响0人  最美的太阳WW

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

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


<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>


<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.2.5.Final</version>
</dependency>

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


<bean id="globalValidator"
class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/>

 <mvc:annotation-driven validator="globalValidator"/>

添加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";
}

}

上一篇下一篇

猜你喜欢

热点阅读