회원가입 유효성검사

JEONG SUJIN·2022년 12월 27일
0

join.jsp

스프링 form 태그 추가하고
form 태그를 <form:form> 으로 수정.

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

   <!-- ..생략-->
 <form:form action="${root }user/join_pro" modelAttribute="joinUserBean">

               
                <div class="form-group">
                  <form:label path="user_name">이름</form:label>
                  <form:input path="user_name" class="form-control" />
                  <form:errors path="user_name" />
                </div>
                
                <div class="form-group">
                  <form:label path="user_id">아이디</form:label>
                  <div class="input-group">
                    <form:input path="user_id" class="form-control" />
                    <div class="input-group-append">
                      <button type="button" class="btn btn-primary">중복확인</button>
                    </div>
                  </div>
                  <form:errors path="user_id"/>
                </div>
                
                
                
                <div class="form-group">
                  <form:label path="user_pw">비밀번호</form:label>
                  <form:input path="user_pw" class="form-control" />
                  <form:errors path="user_pw"/>
                </div>
                <div class="form-group">
                  <form:label path="user_pw2">비밀번호 확인</form:label>
                  <form:input path="user_pw2" class="form-control" />
                  <form:errors path="user_pw2"/>
                </div>
                <div class="form-group">
                  <div class="text-right">
                    <button type="submit" class="btn btn-primary">회원가입</button>
                  </div>
                </div>
              </form:form>
              

UserBean에 비밀번호확인 user_pw2를 추가

private String user_pw2; //비밀번호 확인

UserController.java

@GetMapping("/join")
	public String join(@ModelAttribute("joinUserBean") UserBean joinUserBean) {
		return "user/join";
	}

@ModelAttribute("joinUserBean") 이름이 join.jsp 의 modelAttribut="joinUserBean" 과 같게한다

UserBean.java

UserBean 유효성 검사 어노테이션 붙이기

public class UserBean {
	
	private int user_idx;

	@Size(min=2, max=4, message = "이름은 2자에서 4자까지 ")
	@Pattern(regexp = "[가-힣]*", message = "한글만 사용가능")
	private String user_name;
	
	@Size(min=4, max=10, message = "아이디는 4자에서 10자까지")
	@Pattern(regexp = "[a-zA-Z0-9]*", message = "영문대소문자와 숫자만 사용가능")
	private String user_id; //아이디
	
	@Size(min=4, max=20, message = "패스워드는는 4자에서 20자까지")
	@Pattern(regexp = "[a-zA-Z0-9]*", message = "영문대소문자와 숫자만 사용가능")
	private String user_pw; //비밀번호 
	 
	
	@Size(min=4, max=20, message = "패스워드는는 4자에서 20자까지")
	@Pattern(regexp = "[a-zA-Z0-9]*", message = "영문대소문자와 숫자만 사용가능")
	private String user_pw2; //비밀번호확인 

	public int getUser_idx() {
		return user_idx;
	}


	public void setUser_idx(int user_idx) {
		this.user_idx = user_idx;
	}


	public String getUser_name() {
		return user_name;
	}


	public void setUser_name(String user_name) {
		this.user_name = user_name;
	}


	public String getUser_id() {
		return user_id;
	}


	public void setUser_id(String user_id) {
		this.user_id = user_id;
	}
	public String getUser_pw() {
		return user_pw;
	}

	public void setUser_pw(String user_pw) {
		this.user_pw = user_pw;
	}

	public String getUser_pw2() {
		return user_pw2;
	}

	public void setUser_pw2(String user_pw2) {
		this.user_pw2 = user_pw2;
	}	
}

join.jsp에 joinUserBean객체가 바인딩 되어있고 유저가 form을 작성해서
submit버튼을 누르면 /join_pro로 joinUserBean객체가 입력되고, 이 때 유효성검사 @Valid를 하고 에러시 에러메시지와 다시 원래페이지로 되돌아감

유효성검사표시가 잘되는걸 볼 수 있다.

비밀번호동일한지 여부 확인 하기

비밀번호 동일한지 체크하는 부분을 메세지 출력되게끔 넣어주기

join.jsp

<div class="form-group">
                  <form:label path="user_pw2">비밀번호 확인</form:label>
                  <form:input path="user_pw2" class="form-control" />
                  <form:errors path="user_pw2" style="color:coral"/>
                  <div style="color:coral">${msg }</div>
                </div>

UserController.java

if(!joinUserBean.getUser_pw().equals(joinUserBean.getUser_pw2())) {
			model.addAttribute("msg", "비밀번호가 같지 않습니다.");
			return "user/join";
}
profile
기록하기

0개의 댓글