본문 바로가기
개발

스프링부트 폼검증 - @NotBlank, @Email, @Size, @Pattern, @Valid

by 플리트우드 2020. 12. 20.

커맨드 클래스 :

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