인프런 커뮤니티 질문&답변

EUNKYUNG JUNG님의 프로필 이미지
EUNKYUNG JUNG

작성한 질문수

윤재성의 만들면서 배우는 Spring MVC 5

29강 유효성 검사

강사님, 저 유효성검사가 되지 않습니다.

작성

·

424

2

강사님 저 질문이있습니다.
아래는 4개 파일 다 소스 첨부했구요.
유효검사를 작성했는데, BindingResult result 했는데도 제대로 검사가 안돼서
초과하는 범위를 써도 에러가 0 이라고 뜹니다. 한 번 체크해주세요 감사합니다.
(pom.xml에도 아래와같이 추가는 잘 하였습니다.ㅜ..  

		<!-- https://mvnrepository.com/artifact/javax.validation/validation-api -->
		<dependency>
		    <groupId>javax.validation</groupId>
		    <artifactId>validation-api</artifactId>
		    <version>2.0.1.Final</version>
		</dependency>
		
		<!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator -->
		<dependency>
		    <groupId>org.hibernate.validator</groupId>
		    <artifactId>hibernate-validator</artifactId>
		    <version>7.0.0.Final</version>
		</dependency>

)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
package com.spring5.doitPro.controller;

import javax.validation.Valid;

import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

import com.spring5.doitPro.beans.DataBean1;

@Controller
public class TestController {

	@GetMapping("/input_data.do")
	public String input_date() {
		
		return "input_data";
	}
	
	@PostMapping("/input_pro.do")
	public String input_pro(@Valid DataBean1 dataBean1, BindingResult result) {
		System.out.printf("data1: %s\n", dataBean1.getData1());
		System.out.printf("data2: %s\n", dataBean1.getData2());
	
		//System.out.printf("BindingResult : %s\n", result);
	
		//유효성검사에서 위반된 부분이 있다면..
		if(result.hasErrors()) {
			//유효성위반결과들 모두 가져온다.
			for(ObjectError obj: result.getAllErrors()) {
				System.out.printf("메시지: %s\n", obj.getDefaultMessage());
				System.out.printf("code: %s\n", obj.getCode());
				System.out.printf("object name : %s\n", obj.getObjectName());
				
				System.out.println("---------------------------------");
			}
		}
		
		return "input_success";
	}
	
	
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>input_success</h1>
	<h3>data1 : ${dataBean1.data1 }</h3>
	<h3>data2 : ${dataBean1.data2 }</h3>
</body>
</html>
----------------------------------------------------------------------------------------------------------------------------------------------------------------
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>input_data</h1>
	<form action='input_pro.do' method='post'>
		data1 : <input type='text' name='data1' /><br/>
		data2 : <input type='text' name='data2' /><br/>
		
		<button type='submit'>확인</button>
	</form>
</body>
</html>

----------------------------------------------------------------------------------------------------------------------------------------------------------------

package com.spring5.doitPro.beans;

import javax.validation.constraints.Max;
import javax.validation.constraints.Size;

public class DataBean1 {
	
	@Size(min =2, max=10)
	private String data1;
	
	@Max(100)
	private int data2;
	
	public String getData1() {
		return data1;
	}
	public void setData1(String data1) {
		this.data1 = data1;
	}
	public int getData2() {
		return data2;
	}
	public void setData2(int data2) {
		this.data2 = data2;
	}
	
	
	
}

답변 3

2

너무 오래전 댓글이어서 분명 이미 해결 하셨을 것 같은데

저도 같은 증상으로 유효성검사에 실패했습니다.

저는 pom.xml에 추가한 Hibernate의 버전을 강사님이

제공하신 코드의 버전으로 바꾸니 해결되었습니다.

혹시라도 유효성검사가 안되시는 분들은 pom.xml설정의 Hibernate부분의 버전을 낮추어보세요.

<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
	<version>6.1.2.Final</version>
</dependency>

0

덕분에 해결했습니다! 감사합니다!

0

소프트캠퍼스님의 프로필 이미지
소프트캠퍼스
지식공유자

오류 메시지를 같이 올려주세요

EUNKYUNG JUNG님의 프로필 이미지
EUNKYUNG JUNG

작성한 질문수

질문하기