웹개발자/java
전자정부프레임워크 hibernate-validator 적용 (spring 4.3)
wlsufld
2020. 3. 2. 15:57
jdk 1.7, 전자정부프레임워크 3.8 (spring 4.3)
오래전에 해서 잘 기억 나지 않지만 다시 사용하기 위해 몇가지 기억나는 부분만 등록.
1. pom.xml debdependency 추가
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.2.0.Final</version>
</dependency>
2. java Controller (write, insert 처리)
package egovframework.sample.bbs.controller;
import javax.annotation.Resource;
import javax.validation.Valid;
import javax.validation.Validator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import egovframework.sample.bbs.service.SampleBbsVO;
@Controller
public class samplebbsController {
@Resource
Validator validator;
@InitBinder
protected void initBinder(WebDataBinder binder){
binder.setValidator((org.springframework.validation.Validator) this.validator);
}
private static final Log LOG = LogFactory.getLog(samplebbsController.class);
//등록 페이지
@RequestMapping("/sample/bbs/dataTestWrite.do")
public String dataTestWrite(@ModelAttribute SampleBbsVO samplebbsVO, @RequestParam Map<String,Object> pMap, ModelMap model) throws Exception {
return "sample/bbs/dataTestWrite";
}
//등록 처리
@PostMapping("/sample/bbs/dataTestInsert.do")
public String dataTestInsert(@Valid SampleBbsVO samplebbsVO, BindingResult bindingResult, ModelMap model) throws Exception {
if(bindingResult.hasErrors()) {
for(ObjectError error : bindingResult.getAllErrors()) {
LOG.error(error.getCode() + " : " +error.getDefaultMessage());
}
return "sample/bbs/dataTestWrite";
} else {
/* 업무 수행 */
}
return "redirect: /sample/bbs/dataTestList.do";
}
}
3. write jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<c:url value="/sample/bbs/dataTestInsert.do" var="formUrl" />
<ul>
<li>
<ol>
<form:form action="${formUrl}" commandName="sampleBbsVO" method="post" htmlEscape="true" >
<li>id : </li>
<li>
name :
<form:input path="name" />
<form:errors path="name" cssClass="errorMsg" />
</li>
<li>
dt :
<form:input path="dt" />
<form:errors path="dt" cssClass="errorMsg" />
</li>
<li><input type="submit" name="" value="save" ></li>
</form:form>
</ol>
</li>
</ul>
끝.