-
JSR-308웹페이지 제작을 위한 스프링공부 2020. 5. 12. 18:39
JSR-308
@NotEmpty : 주입된 값의 길이가 0이면 오류 발생. 공백도 글자로 인식합니다.
@NotBlank : 주입된 값이 공백을 제거하고 길이가 0이면 오류 발생.
@Positive : 양수가 아니라면 오류 발생
@PositiveOrZero : 0 또는 양수가 아니라면 오류 발생
@Negative : 음수가 아니라면 오류 발생
@NegativeOrZero : 0 또는 음수가 아니라면 오류 발생
@Email : 이메일 형식이 아니라면 오류 발생. 중간에 @ 가 있는지 정도만 확인한다.
DataBean1
package kr.co.softcampus.beans; import javax.validation.constraints.Email; import javax.validation.constraints.Negative; import javax.validation.constraints.NegativeOrZero; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Positive; import javax.validation.constraints.PositiveOrZero; public class DataBean1 { @NotBlank private String data1; @NotBlank private String data2;//space 길이를 0dmfh 판단 @Positive private int data3; @PositiveOrZero private int data4; @Negative private int data5; public int getData6() { return data6; } public void setData6(int data6) { this.data6 = data6; } public String getData7() { return data7; } public void setData7(String data7) { this.data7 = data7; } @NegativeOrZero private int data6; @Email private String data7; public int getData4() { return data4; } public int getData5() { return data5; } public void setData5(int data5) { this.data5 = data5; } public void setData4(int data4) { this.data4 = data4; } public void setData2(String data2) { this.data2 = data2; } public DataBean1() {//초기값 설정 this.data1="abcd"; this.data2="abcd"; this.data3=50; this.data4=50; this.data5=-50; this.data6=-50; this.data7="ohmyfun@naver.com"; } public String getData1() { return data1; } public void setData1(String data1) { this.data1 = data1; } public String getData2() { return data2; } public int getData3() { return data3; } public void setData3(int data3) { this.data3 = data3; } }
TestController
package kr.co.softcampus.controller; import javax.validation.Valid; 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 kr.co.softcampus.beans.DataBean1; @Controller public class TestController { @GetMapping("/input_data") public String input_data(DataBean1 dataBean1) { return "input_data"; } @PostMapping("/input_pro") public String input_pro(@Valid DataBean1 dataBean1,BindingResult result) { if(result.hasErrors()) { return "input_data"; } return "input_success"; } }
error_message.properties
NotEmpty.dataBean1.data1 = data1의 값의 길이는 0보다 커야합니다 NotBlank.dataBean1.data2 = data2의 값의 길이는 공백을 제거하고 0보다 커야합니다 Positive.dataBean1.data3 = data3은 양수만 허용합니다 PositiveOrZero.dataBean1.data4 = data4는 0혹은 양수만 허용합니다 Negative.dataBean1.data5 = data5는 음수만 허용합니다 NegativeOrZero.dataBean1.data6 = data6는 0혹은 음수만 허용합니다 Email.dataBean1.data7 = data7는 이메일 형식만 허용합니다
input_data.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix='form' uri="http://www.springframework.org/tags/form" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h1>input_data</h1> <form:form action='input_pro' modelAttribute="dataBean1" method='post'> data1: <form:input type="text" path='data1'/><br/> <form:errors path='data1'/><br/><!-- dataBean1안에 들어있는 data1이라는 변수의 유효성검사를 했을떄 해당 유효성 검사를 실패했을때 dataBean1안의 data1과 관련된 에러 메시지를 가져와서 실행하겠다. --> data2: <form:input type="text" path='data2'/><br/> <form:errors path='data2'/><br/> data3: <form:input type="text" path='data3'/><br/> <form:errors path='data3'/><br/> data4: <form:input type="text" path='data4'/><br/> <form:errors path='data4'/><br/> data5: <form:input type="text" path='data5'/><br/> <form:errors path='data5'/><br/> data6: <form:input type="text" path='data6'/><br/> <form:errors path='data6'/><br/> data7: <form:input type="text" path='data7'/><br/> <form:errors path='data7'/><br/> <form:button type='submit'>확인</form:button> </form:form> </body> </html>
'웹페이지 제작을 위한 스프링공부' 카테고리의 다른 글
interceptor (0) 2020.05.12 Validator (0) 2020.05.12 JSR-303 (0) 2020.05.12 에러 메시지 커스터마이징 (0) 2020.05.12 유효성 검사 (0) 2020.05.10