티스토리 뷰

Member 라는 beans 클래스다.

1
2
3
4
5
6
7
8
9
10
11
12
public class Member {
 
    private String id;
    private String pw;
    private String name;
    private int sex; // 0이면 여자 1이면 남자
    private String mobile;
    private String email;
    private int dept_code;
 
   // .. getter, setter method ..
}

sex 속성은 int로 정의되어있다.

 

 

다음은, 회원가입 view의 form 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<form class="form-horizontal static" role="form" method="post">
                    <h2>학생 가입 정보 등록</h2>
                    
                    <div class="form-group">
                        <label class="col-lg-3 control-label">성별</label> <select
                            class="col-lg-9 form-control form-join" id="se" name="se">
                            <option value="0" ${ sex == 0 ? "selected" : "" }>여자</option>
                            <option value="1" ${ sex == 1 ? "selected" : "" }>남자</option>
                        </select> <input type="hidden" id="sex" name="sex" value="${ sex }">
                    </div>
                    
                                <!-- 그외 회원가입 정보 -->
                                
                    <div class="form-group">
                        <button class="col-md-offset-3 col-lg-3 btn btn-s btn-default"
                            type="submit">회원가입 완료</button>
                        <input type="hidden" id="auth" name="auth" value="1">
                    </div>
 
                    <input type="hidden" id="submit_type" name="submit_type"
                        value="가입신청">
</form>

 

hidden type의 name="sex" 컬럼을 통해 컨트롤러에서 Member를 받는다. value값에 sex를 지정해놓은 이유는.. 사용가 입력해둔 성별을 기억하기 위함.

id 중복확인 시 ajax를 사용하지 않아서 post 방식으로 페이지를 submit하게 되는데, 그때 사용자가 입력해둔 성별을 기억해야 한다.

여기서 문제 발생. 성별 입력을 한번도 하지 않은 상태로 '중복확인'을 하면 에러가 난다. Member에서 필요한 sex라는 값이 null이기 때문

이 문제를 쉽게 해결하는 방법은 다음과 같다.

 

Member의 sex 타입을 변경한다.

1
2
3
4
5
6
7
8
9
10
11
12
public class Member {
 
    private String id;
    private String pw;
    private String name;
    private Integer sex; // 0이면 여자 1이면 남자
    private String mobile;
    private String email;
    private int dept_code;
    
   // .. getter, seter method ..
}

Integer 타입은 null값도 포함하므로 에러가 발생하지 않는다. 단 이 경우, 잘못하면 sex값이 null로 들어갈 수 있으므로 이를 처리해야함.

아래의 dept_code의 경우, 학과를 선택하지 않았을 경우 post submit이 불가능하기 때문에 문제가 발생하지 않았음.

 

 

 

'SpringFramework' 카테고리의 다른 글

[spring] web.xml 설정  (1) 2015.02.24
[Spring] Spring에서 JSON 통신하기  (0) 2014.12.09
[spring] Annotation 사용설정  (0) 2014.12.09
[spring] <form:..> 관련  (0) 2014.12.04
[Spring] 파일 업로드 에러  (0) 2014.11.07
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함