表單驗(yàn)證器--由(springmvc.hibernate配合而來)

1.在pom.xml中添加應(yīng)有的jar包。

因?yàn)榇蓑?yàn)證器由springmvc 和hibernate共同配合,需要在springmvc中書寫配置文件,所以用到j(luò)avax.validation jar包 驗(yàn)證器由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配置文件中書寫下面的配置器,同時(shí)需要添加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中的屬性上面書寫正則表達(dá)式 或者 past futhrue等關(guān)鍵字。

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 請求參數(shù) 來自于表單 或者?后面的一節(jié)
// cookieValue 來自于cookie
// RequestHeader -請求頭
// PathVariable-路徑參數(shù)("/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", "用戶名或密碼錯(cuò)誤");
            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";
}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容