웹페이지 제작을 위한 스프링공부
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>