작성
·
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