강의

멘토링

로드맵

Inflearn Community Q&A

thxjek1193's profile image
thxjek1193

asked

Learn Spring MVC 5 by Making It with Yoon Jae-seong

Lesson 29 Validation

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

Written on

·

532

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;
	}
	
	
	
}
javaspringXMLMVC

Quiz

67% of people got it wrong. Give it a try!

What is the main purpose of using properties files?

Storing Dynamic Values at Runtime

Management of unchanging values during program execution, such as database connection information

Save user session info

Dynamic View Template Creation

Answer 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

softcampus님의 프로필 이미지
softcampus
Instructor

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

thxjek1193's profile image
thxjek1193

asked

Ask a question