728x90

JSR-303

Data

package kr.bit.beans;

import javax.validation.constraints.*;

public class Data {

    @AssertTrue // True가 아닌 값이 들어오면 오류
    private boolean num1;

    @AssertFalse // False가 아닌 값이 들어오면 오류
    private boolean num2;

    @Max(200)
    @Min(20)
    private String num3;

    @Null // 값이 들어오면 오류
    private String num4;

    @NotNull // 값이 들어오지 않으면 오류
    private String num5;

    @Digits(integer =3, fraction = 2) // 정수, 실수
    private String num6;

    @Size(min=2, max=10) // 지정된 글자수보다 짧거나 길면 오류
    private String num7;

    @Pattern(regexp = "[a-zA-Z]*") // 주어진 정규식에 위배되면 오류
    private String num8;

    public Data() {
        this.num1=true;
        this.num2=false;
        this.num3="10";
        this.num4=null;
        this.num5="spring";
        this.num6="222.22";
        this.num7="java";
    }

    public boolean isNum1() {
        return num1;
    }

    public void setNum1(boolean num1) {
        this.num1 = num1;
    }

    public boolean isNum2() {
        return num2;
    }

    public void setNum2(boolean num2) {
        this.num2 = num2;
    }

    public String getNum3() {
        return num3;
    }

    public void setNum3(String num3) {
        this.num3 = num3;
    }

    public String getNum4() {
        return num4;
    }

    public void setNum4(String num4) {
        this.num4 = num4;
    }

    public String getNum5() {
        return num5;
    }

    public void setNum5(String num5) {
        this.num5 = num5;
    }

    public String getNum6() {
        return num6;
    }

    public void setNum6(String num6) {
        this.num6 = num6;
    }

    public String getNum7() {
        return num7;
    }

    public void setNum7(String num7) {
        this.num7 = num7;
    }

    public String getNum8() {
        return num8;
    }

    public void setNum8(String num8) {
        this.num8 = num8;
    }
}

Controller

package kr.bit.controller;

import kr.bit.beans.Data;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

import javax.validation.Valid;


@Controller
public class SpringController {

    @GetMapping("/t1")
    public String t1(Data data) {
        return "test1";
    }

    @PostMapping("/test_proc") // 입력한 값 유효성 검사 - > 유효성 검사에 대한 결과값
    public String test_proc(@Valid Data data, BindingResult result){

        if(result.hasErrors()) {
            return "test1";
        }
        return "test2";
    }
}

test1.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<html>
<body>
<form:form modelAttribute="data" method="post" action="test_proc"> <!-- 앞글자는 소문자 -->

    num1 : <form:radiobutton path="num1" value="true"/>true
    <form:radiobutton path="num1" value="false"/>false<br>
    <form:errors path="num1"/><br> <!-- default error message 출력됨 -->

    num2 : <form:radiobutton path="num2" value="true"/>true
    <form:radiobutton path="num2" value="false"/>false<br>
    <form:errors path="num2"/><br>

    num3 : <form:input path="num3" type="text"/><br>
    <form:errors path="num3"/><br>

    num4 : <form:checkbox path="num4" value="check1"/>check1<br>
    <form:errors path="num4"/><br>

    num5 : <form:checkbox path="num5" value="check2"/>check2<br>
    <form:errors path="num5"/><br>

    num6 : <form:input path="num6" type="text"/><br>
    <form:errors path="num6"/><br>

    num7 : <form:input path="num7" type="text"/><br>
    <form:errors path="num7"/><br>

    num8 : <form:input path="num8" type="text"/><br>
    <form:errors path="num8"/><br>

    <form:button type="submit">체크</form:button>

</form:form>
</body>
</html>

test2.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
Success!
</body>
</html>

error.properties

AssertTrue.data.num1 = num1 is not true
AssertFalse.data.num2 = num2 is not false
Max.data.num3 = num3 must be 200 or equal to 200
Min.data.num3 = num3 have to be at least 20
Null.data.num4 = num4 does not have to insert a value
NotNull.data.num5 = num5 has to insert a value
Digits.data.num6 = num6 is an integer with 3 digits and 2 fractions
Size.data.num7 = num7 can use StringSize from 2 to 10
Pattern.data.num8 = regexp is an illegal pattern

 

 

 

 


JSR-380

 

 

Data

package kr.bit.beans;

import javax.validation.constraints.*;

public class Data {

    @NotEmpty // 값이 길이가 0이면 에러발생(공백도 글자로 인식)
    private String num1;

    @NotBlank // 공백제거하고 길이가 0이면 에러발생
    private String num2;

    @Positive // 양수가 아니면 에러
    private int num3;

    @PositiveOrZero
    private int num4;

    @Negative // 음수가 아니면 에러
    private int num5;

    @Email // @기호가 있어야함 (이메일형식)
    private String num6;

    public Data() {

        this.num1 = "레알마드리드";
        this.num2 = "도르트문트";
        this.num3 = 7;
        this.num4 = 10;
        this.num5 = -3;
    }

    public String getNum1() {
        return num1;
    }

    public void setNum1(String num1) {
        this.num1 = num1;
    }

    public String getNum2() {
        return num2;
    }

    public void setNum2(String num2) {
        this.num2 = num2;
    }

    public int getNum3() {
        return num3;
    }

    public void setNum3(int num3) {
        this.num3 = num3;
    }

    public int getNum4() {
        return num4;
    }

    public void setNum4(int num4) {
        this.num4 = num4;
    }

    public int getNum5() {
        return num5;
    }

    public void setNum5(int num5) {
        this.num5 = num5;
    }

    public String getNum6() {
        return num6;
    }

    public void setNum6(String num6) {
        this.num6 = num6;
    }
}

Controller

package kr.bit.controller;

import kr.bit.beans.Data;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

import javax.validation.Valid;


@Controller
public class SpringController {

    @GetMapping("/t1")
    public String t1(Data data) {
        return "test1";
    }

    @PostMapping("/test_proc") // 입력한 값 유효성 검사 - > 유효성 검사에 대한 결과값
    public String test_proc(@Valid Data data, BindingResult result){

        if(result.hasErrors()) {
            return "test1";
        }
        return "test2";
    }
}

test1.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<html>
<body>
<form:form modelAttribute="data" method="post" action="test_proc"> <!-- 앞글자는 소문자 -->

    num1 : <form:input path="num1" type="text"/>
    <form:errors path="num1"/><br>

    num2 : <form:input path="num2" type="text"/>
    <form:errors path="num2"/><br>

    num3 : <form:input path="num3" type="text"/>
    <form:errors path="num3"/><br>

    num4 : <form:input path="num4" type="text"/>
    <form:errors path="num4"/><br>

    num5 : <form:input path="num5" type="text"/>
    <form:errors path="num5"/><br>

    num6 : <form:input path="num6" type="text"/>
    <form:errors path="num6"/><br>

<form:button type="submit">Check</form:button>

</form:form>
</body>
</html>

error.properties

NotEmpty.data.num1 = Length must be greater than 0
NotBlank.data.num2 = Length must be greater than 0 after trimming blanks
Positive.data.num3 = Must be a positive number
PositiveOrZero.data.num4 = Must be 0 or a positive number
Negative.data.num5 = Must be a negative number
Email.data.num6 = Must be in email format

 


 

728x90

+ Recent posts