最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java開發(fā)之基于Validator接口的SpringMVC數(shù)據(jù)校驗(yàn)方式

 更新時(shí)間:2021年09月15日 11:03:31   作者:DrLai  
這篇文章主要介紹了java開發(fā)之基于Validator接口的SpringMVC數(shù)據(jù)校驗(yàn)方式,文中附含詳細(xì)示例代碼,有需要的朋友可以借鑒參考下

Spring MVC 提供了兩種數(shù)據(jù)校驗(yàn)的方式:

1、基于 Validator 接口。

2、使用 Annotation JSR - 303 標(biāo)準(zhǔn)進(jìn)行校驗(yàn)。

基于 Validator 接口的⽅式需要自定義 Validator 驗(yàn)證器,每⼀條數(shù)據(jù)的驗(yàn)證規(guī)則需要開發(fā)者⼿動(dòng)完成, 使⽤ Annotation JSR - 303 標(biāo)準(zhǔn)則不需要⾃定義驗(yàn)證器,通過注解的方式可以直接在實(shí)體類中添加每個(gè)屬性的驗(yàn)證規(guī)則,這種方式更加方便,實(shí)際開發(fā)中推薦使用。

1.定義實(shí)體類Account

package entity;
import lombok.Data;
@Data
public class Account {
    private String name;
    private String password;
}

2.自定義驗(yàn)證器 AccountValidator,實(shí)現(xiàn) Validator 接口

package validator;
import entity.Account;
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;
public class AccountValidator implements Validator {
    @Override
    public boolean supports(Class<?> aClass) {
        return Account.class.equals(aClass);
    }
    @Override
    public void validate(Object o, Errors errors) {
        ValidationUtils.rejectIfEmpty(errors,"name",null,"姓名不能為空");
        ValidationUtils.rejectIfEmpty(errors,"password",null,"密碼不能為空");
    }
}

Validator中有兩個(gè)方法, supports是判斷傳入是否為目標(biāo)類,如果是的話則進(jìn)行下一步,數(shù)據(jù)驗(yàn)證的操作。

3.控制器

package Mycontroller; 
import entity.Account;
import entity.Person;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import javax.validation.Valid;
@Controller
@RequestMapping("/validator")
public class ValidatorHandler {
    @GetMapping("/login")
    public String login(Model model){
        model.addAttribute("account",new Account());
        return "login";
    }
    @PostMapping("/login")
    public String login(@Validated Account account, BindingResult bindingResult){
        if(bindingResult.hasErrors()){
            return "login";
        }
        return "index";
    }

4. springmvc.xml 配置驗(yàn)證器

<bean id="accountValidator" class="com.southwind.validator.AccountValidator">
</bean>
<mvc:annotation-driven validator="accountValidator"></mvc:annotation-driven>

5.jsp文件

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isELIgnored="false" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <form:form modelAttribute="account" action="/validator/login" method="post">
        姓名:<form:input path="name"></form:input><form:errors path="name"></form:errors><br>
        密碼:<form:input path="password"></form:input><form:errors path="password"></form:errors><br>
        <input type="submit" value="登錄">
    </form:form>
</body>
</html>

以上就是java開發(fā)之基于Validator接口的SpringMVC數(shù)據(jù)校驗(yàn)方式的詳細(xì)內(nèi)容,更多關(guān)于SpringMVC數(shù)據(jù)校驗(yàn)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

嘉祥县| 扎赉特旗| 遂昌县| 广东省| 文安县| 黔南| 麟游县| 灌阳县| 安国市| 凤阳县| 大方县| 鄂伦春自治旗| 洪江市| 宜阳县| 扎囊县| 高安市| 永新县| 闸北区| 秭归县| 宣化县| 天津市| 湟源县| 宜兰县| 黔西| 积石山| 富阳市| 新河县| 桂林市| 扶风县| 通榆县| 庆城县| 远安县| 托克逊县| 巨鹿县| 湖州市| 新营市| 安仁县| 青浦区| 贡山| 洱源县| 河北区|