풀스택 개발자 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>