작업 환경

eGovFramework Version : 3.8

Eclipse Version : Oxygen.3a Release (4.7.3a)

JDK Version : 1.8

 

데이터의 validator는 화면에서 입력한 데이터를 Server로 보내기 전 검증과 Server에서는 받은 데이터를 처리하기 전의 검증으로 나뉘어 집니다.  뭏론 화면에서 javascript로 파라미터를 하나씩 검증하는 방법을 사용하기도 하지만 작업이 어렵지 않으니 한번 사용해 봅니다.

작업도 간단합니다. jsp, xml, Vo, Controller만 작성해 주면 됩니다.

 

Vo 작성

service 패키지를 만들고 vo를 생성하여 입력 받을 데이터들을 설정 합니다

 

public class ValidatorTestVo {

 

         private String id;

         private String name;

         private int age;

        

        

         public String getId() {

                  return id;

         }

         public void setId(String id) {

                  this.id = id;

         }

         public String getName() {

                  return name;

         }

         public void setName(String name) {

                  this.name = name;

         }

         public int getAge() {

                  return age;

         }

         public void setAge(int age) {

                  this.age = age;

         }

 

}

 

validator xml 작성

 

resource 폴더 validator에 임의의 폴더를 생성 합니다.  물론 기존 폴더에 xml만 추가해도 됩니다.

생성한 폴더에 임의의 xml 파일을 생성 합니다. 여기서는 다음과 같이 폴더와 파일을 생성 했습니다.

ValidateTest.xml 파일에 검사할 항목들을 추가 합니다.

<form-validation>

 

    <formset>

                  <form name="validatorTestVo">

                           <field property="id" depends="required">

                   <arg0 key="아이디" resource="true"/>

                           </field>

                           <field property="name" depends="required">

                   <arg0 key="이름" resource="true"/>

                           </field>

                           <field property="age" depends="required, integer">

                   <arg0 key="나이" resource="true"/>

                           </field>

                  </form>

    </formset>

 

</form-validation>

 

Controller 생성

 

web 패키지를 생성하고 Controller를 만듭니다.

 

@Controller

public class ValidatorTestController {

 

         @Autowired

         private DefaultBeanValidator beanValidator;

 

         @RequestMapping("/validator/validatorTest.do")

         public String index(ModelMap model) {

                  return "copycoding/validator/ValidatorTest";

         }

        

         @RequestMapping("/validator/formValidate.do")

         public@ResponseBody String selectGridSampleList(@ModelAttribute("validatorTestVo") ValidatorTestVo validatorTestVo, BindingResult bindingResult, ModelMap model) throws Exception {

                 

                  beanValidator.validate(validatorTestVo, bindingResult); // validation 체크를 수행하여 검사        

                 

          if (bindingResult.hasErrors()) {

                  model.addAttribute("validatorTestVo", validatorTestVo); // validation 오류 발생한 경우 리턴 처리

                           return "";

                  }

                 

                  return null;

         }

}

 

JSP 파일 생성

 

이제 마지막으로 화면을 위한 폴더와 파일을 생성 합니다.

 

egovframework validator

 

 

상단에 validatorlib를 추가 합니다.

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>

<script type="text/javascript" src="<c:url value="/validator.do"/>"></script>

<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>

 

validatorjavascript도 추가를 해줍니다.

<validator:javascript formName="validatorTestVo" staticJavascript="false" xhtml="true" cdata="false"/>

 

<script type="text/javaScript" language="javascript">

function fncValidatorInsert() {

 

    var varFrom = document.getElementById("validatorTestVo");

    varFrom.action = "<c:url value='/validator/formValidate.do'/>";

 

    if(confirm("저장 하나요?")){

        if(!validateValidatorTestVo(varFrom)){

            return;

        }else{

            if(ipValidate())

                varFrom.submit();

            else

                return;

        }

    }

}

</script>

 

validatorform을 다음과 같이 작성 합니다.

<form:form commandName="validatorTestVo" method="post" action="${pageContext.request.contextPath}/validator/formValidate.do' />">

<table class="wTable">

         <tr>

                  <td><input id="id" name="id" type="text"></td>

         </tr>

         <tr>

                  <td><input id="name" name="name" type="text"></td>

         </tr>

         <tr>

                  <td><input id="age" name="age" type="text"></td>

         </tr>

         <tr>

                  <td><input class="s_submit" type="submit" value="save" onclick="fncValidatorInsert(); return false;" /></td>

         </tr>

</table>

</form:form>

 

테스트를 진행

 

먼저 아무것도 입력하지 않고 저장 버튼을 클릭 하는 경우

egovframework validator

 

모두 필수 값이므로 입력을 하도록 메시지가 출력 됩니다.

 

모두 문자를 입력한 경우

 

egovframework validator

 

age는 숫자 이므로 숫자 입력 메시지가 출력 됩니다.

좀더 상세한 설정이 필요하면 validatorxml을 설정하면 됩니다.

 

- copy coding -


+ Recent posts