커맨드 클래스 :
package lee.engbook;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import lombok.Data;
@Data
public class RegisterRequest {
@NotBlank(message="필수항목입니다.")
@Size(min=4,max=16,message="아이디는 4자 이상 16자 이하입니다.")
private String id;
@NotBlank(message="필수항목입니다.")
@Email(message="이메일 형식이 올바르지 않습니다.")
private String email;
@NotBlank(message="필수항목입니다.")
@Size(min=4,max=16,message="비밀번호는 4자 이상 16자 이하입니다.")
@Pattern(regexp="[a-zA-Z1-9]{6,12}", message = "비밀번호는 영어와 숫자를 포함해야 합니다.")
private String password;
@NotBlank(message="필수항목입니다.")
private String confirmPassword;
public boolean isPasswordEqualToConfirmPassword() {
return password.equals(confirmPassword);
}
}
컨트롤러 :
package lee.engbook;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import lee.engbook.member.MemberService;
@Controller
@RequestMapping("/register")
public class RegisterController {
@Autowired
private MemberService memberService;
@GetMapping("/form")
public String form(Model model) {
model.addAttribute("registerRequest",new RegisterRequest());
return "register/form";
}
@PostMapping("/form")
public String submit(@Valid RegisterRequest regReq,BindingResult result) {
if(result.hasErrors()) {
return "register/form";
}
try {
memberService.regist(regReq);
return "register/succeed";
}catch(DuplicateMemberException ex) {
return "register/form";
}
}
}
'개발' 카테고리의 다른 글
java 스트링 비교 - contentEquals() (0) | 2020.12.20 |
---|---|
AJAX (0) | 2020.12.20 |
제이쿼리 eq (0) | 2020.12.20 |
부트스트랩 링크 안 될 때 (0) | 2020.12.20 |
java Object 생성 시 멤버 변수 초기화 (0) | 2020.12.20 |