메뉴 건너뛰기

조회 수 7108 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

전자정부 표준프레임워크에서는 공통컴포넌트로 회원가입도 제공하고 있습니다.

회원가입 form에서는 조금 독특한 Validator를 사용하고 있는데요.
아마도 스프링(Spring)에서 지원하는 Validator를 알맞게 수정해서 사용하고 있는 것 같습니다.


그래서, 회원가입을 통해서 Validator를 구현하는 방식을 살펴보겠습니다.

1. Validator 하위 xml 파일 만들어서 rule 구현하기
2. 해당 VO 파일 만들기
3. Controller(EgovMberManageController.java)의 해당 메소드에 ModelAttribute 파라미터로 추가하기
4. JSP 파일에 폼양식 및 스크립트 추가하기(
EgovMberSbscrb.jsp)


1. Validator 하위에 xml 파일 만들어서 rule 구현하기

validator 하위에 EgovMberManage.xml 파일을 생성합니다.
(파일명은 원하는 이름으로 하셔도 알아서 인식합니다.)


EgovMberManage.xml 파일에 아래처럼 체크할 필드들에 대해 속성을 넣어주세요.

필수값이면 required, 최대글자길이 제한이 있다면 maxLength 등 넣어주시면 됩니다.

validator 폴더 하위의 다른 xml 파일들을 참고해서 눈치껏 작성해 주시면 됩니다.

form name으로 사용한 mberManageVO는 다른 곳에서도 사용하니 기억해 두시구요.


2. 해당 VO 파일 만들기 (MberManageVO)

EgovMberManage.xml 파일에 아래처럼 체크할 필드들에 대해 속성을 넣어주세요.

xml 파일에서 form name을 mberManageVO로 했던 거 기억하시죠?

지금 만들 MberManageVO 때문입니다.


MberManageVO에서 정의한 변수값들이 중요한데요.

1번에서 만들었던 EgovMberManage.xml 소스의 property명과 MberManageVO 안의 변수명들이 같아야 에러가 나지 않습니다.

만일 VO에 없는 변수가 xml 파일에 정의되면 오류가 발생합니다.

그리고, 4번에서 jsp 파일에 폼을 만들텐데 그곳에서의 name도 이 VO 파일의 변수명과 같아야 에러가 발생하지 않습니다.


3. Controller(EgovMberManageController.java)의 해당 메소드에 ModelAttribute 파라미터로 추가하기

회원가입 양식을 실행시키는 메소드는 sbscrbMberView() 메소드의 파라미터에 아래 부분을 반드시 선언해 주셔야 합니다.

@ModelAttribute("mberManageVO") MberManageVO mberManageVO


4. JSP 파일에 폼양식 및 스크립트 추가하기(EgovMberSbscrb.jsp)

1. taglib 추가하기

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


2. script 추가하기

<script type="text/javascript" src="<c:url value="/sec/rnc/validator.do"/>"></script>
<validator:javascript formName="mberManageVO" staticJavascript="false" xhtml="true" cdata="false"/>


3. <form:form 태그로 폼 추가하기

<form:form commandName="mberManageVO" action="${pageContext.request.contextPath}/uss/umt/EgovMberSbscrb.do" name="mberManageVO"  method="post" >


4. <form:input, <form:select 등으로 폼에 개체 추가하기

<form:input path="mberId" size="20" cssClass="txaIpUmt" readonly="true" maxlength="20" /> 등등


굳이 체크할 필요가 없는 부분은 <input .. /> 등으로 구현해도 됩니다.

하지만, validate 체크를 해야 하는 부분은 반드시 <form:input path="mberId" ... /> 처럼 구현하셔야 하구요.
path에 들어가는 값은 MberManageVO에 있는 변수와 이름이 일치하여야 합니다.


5. 전송 버튼이 실행될 자바스크립트 함수에 if문 추가하기

if(validateMberManageVO(document.mberManageVO)){}

[가입신청] 버튼을을 클릭시 validate 체크를 해야하기 때문에 [가입신청] 클릭시 실행되는 함수에 추가할 사항이 있습니다.


[가입신청] 버튼을 클릭하면 fnSbscrb() 함수가 실행되는군요.


fnSbscrb() 함수에 if(validateMberManageVO(document.mberManageVO)){} 이 부분을 넣어줘야 validate 체크를 하게 됩니다.

validateMberManageVO(document.mberManageVO) 값이 true일 때만 전송하도록 구현돼 있습니다.

validateMberManageVO( document.mberManageVO) => mberManageVO 의 명이 사용된 점에 주의하셔야 합니다.


자, 이렇게 구현을 하고 테스트를 해보면 잘 되겠죠?

만일 구현을 다 했는데도 작동하지 않는다면 디버깅을 통해 해결해야 할 것 같습니다.


List of Articles
번호 제목 날짜 조회 수
51 TCP 소켓 프로그래밍 01 - Server/Client 일대일 연결 file 2021.03.31 119
50 System.out.println(); 이클립스에서 자동화기능 사용 file 2016.09.19 5157
49 static멤버와 관련된 예제 2016.09.21 3768
48 static 2016.09.13 3354
47 Spring Boot 프로젝트 생성 file 2016.09.02 4160
46 Singleton Pattern 과 DeadLock file 2023.02.15 74
45 set get 파라미터 2016.08.18 3658
44 Select statements cannot be executed as an update. 에러 해결방법 file 2016.08.29 3846
43 request header 로부터 접속 정보 확인 file 2023.02.15 75
42 Reflection을 활용한 메서드, 필드 값 불러오기. 2021.03.31 122
41 public static void main(String [] args) 2016.09.13 3143
40 No bean name '***Service' is defined 오류나는 이유 및 해결방법 file 2016.08.29 4561
39 MySQL에 All-in-one 설치시 webmaster로 로그인 안되는 문제 해결을 위한 2가지 수정사항 file 2016.08.29 4954
38 My-SQL 을 이용한 JDBC file 2016.09.21 4282
37 log4j에서 로그가 출력되지 않는 문제 수정 2021.03.25 405
36 jstl <c:url value=""> 사용시 ;jsessionid= 붙는 현상 file 2021.03.31 230
35 JSP, Spring, GMail 메일발송 간단 예제 2016.09.12 32791
34 JSON 문자열을 Map 으로 변환하기(Jackson 사용) 2019.01.08 1010
33 JQuery 자동완성 플러그인 JSDT설치 file 2016.09.19 8896
32 jquery 스크롤(scroll) 따라다니는 배너 레이어 / 위로 버튼 / 화면 상단으로 이동 / scroll layer 이벤트 file 2017.07.05 4057
Board Pagination Prev 1 2 3 4 5 6 7 8 Next
/ 8

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved