美文网首页
表单验证器--由(springmvc.hibernate配合而来

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

作者: 最美的太阳WW | 来源:发表于2017-03-25 09:51 被阅读0次

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

    }

    相关文章

      网友评论

          本文标题:表单验证器--由(springmvc.hibernate配合而来

          本文链接:https://www.haomeiwen.com/subject/zcaqottx.html