스프링 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 유효성 검사 어노테이션 붙이기
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를 하고 에러시 에러메시지와 다시 원래페이지로 되돌아감
유효성검사표시가 잘되는걸 볼 수 있다.
비밀번호동일한지 여부 확인 하기
비밀번호 동일한지 체크하는 부분을 메세지 출력되게끔 넣어주기
<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>
if(!joinUserBean.getUser_pw().equals(joinUserBean.getUser_pw2())) {
model.addAttribute("msg", "비밀번호가 같지 않습니다.");
return "user/join";
}