본문 바로가기
공부/Spring

[Spring] Validator를 이용한 회원가입페이지 만들기

by students 2022. 9. 5.

유효성 검사를 통해 회원가입을 하는 방법이다. 이메일이 맞는지등 유효성 검사를 거친 후 회원가입이 완료 된다. 복잡하지만 복잡하지 않는 듯한 느낌. Validator를 이용해서 유효성 검사를 할 것이다

 

1) pom.xml

1
2
3
4
5
6
7
8
9
10
11
12
        <!-- ja : Validation -->    
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.1.0.Final</version>
        </dependency>
 
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.4.2.Final</version>
        </dependency>
cs

 

2) servlet-active.xml

1
2
3
4
5
    <beans:bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <beans:property name="basename" value="classpath:message/message"/>
        <beans:property name="defaultEncoding" value="UTF-8" />
        <beans:property name="cacheSeconds" value="60"/>
    </beans:bean>
cs

 

3) message_ko.properties (src/main/resources/message)

1
Pattern.userVo.user_id=아이디는 영문자 숫자 각 한글자씩 모두 포함하여 5~20글자 사이로 입력 하여야합니다.
cs

 

4) UserVo.java

1
2
    @Pattern(regexp = "^(?=.*[a-zA-z])(?=.*[0-9])(?!.*[^a-zA-z0-9]).{5,20}")
    private String user_id;
cs

 

5) UserController.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@RequestMapping("insertUserProcess")
    public String insertUserProcess(@Valid UserVo param, BindingResult result) {
 
        if (result.hasErrors()) {
            // 에러를 List로 저장
            List<ObjectError> list = result.getAllErrors();
            for (ObjectError error : list) {
                System.out.println(error);
            }
            return "/user/joinUserPage";
        }
 
        userService.insertUser(param);
        
        return "user/joinUserCompletPage";
    }
cs

 

6) joinUserPage.java

1
2
3
4
5
6
7
8
9
10
11
12
13
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
 
                                <div class="row mt-3">
                                    <div class="inputTitle">아이디</div>
                                    <div class="col-3 fs-5"><form:input class="form-control" id="joinIdInput" path="user_id"
                                            type="text" placeholder="아이디를 입력해 주세요." aria-label="default input example" />
                                    </div>
                                    <div class="col-2 d-grid"><button type="button" id="checkIdButton" class="btnBasic"
                                            style="height:36px;">중복확인</button></div>
                                    <div class="col my-auto" id="alertId"><form:errors path="user_id" id="error_message" /></div>
                                </div>
cs

 

7) 실행화면

댓글