본문 바로가기
Coding/spring

인강 복습 : [회원관리] 유효성 처리 검사

by 찡콩찡 2022. 8. 24.
자바버전

스프링에 제공하는 <form>태그 

1. join.jsp 파일에서 < form>태그로 변경 ==커스텀 태그변경

form:label에 있는 path는 userBean과 같아야 함 : 자동으로 주입해야하기 때문에 

 

2. ModelAtrribute에서 joinuserbean을 주입받았기 때문에

userController에 가서 joinuserbean을 사용해준다. 

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

 

xml버전

1. join.jsp 복붙

2. userbean복사 beans package 복사

3.usercontorller 덮어쓰기

4. 실행 후 확인

 


자바버전에서 유효성 검사 userbean에 셋팅하기
@Size(min=2, max=4)
	@Pattern(regexp = "[가-힣]*")  //한글만 입력할 수 있게
	private String user_name;
	
	@Size(min=4, max=20)
	@Pattern(regexp = "[a-zA-Z0-9]*") //알파벳 숫자0-9까지
	private String user_id;
	
	@Size(min=4, max=20)
	@Pattern(regexp = "[a-zA-Z0-9]*") //알파벳 숫자0-9까지
	private String user_pw;
	
	@Size(min=4, max=20)
	@Pattern(regexp = "[a-zA-Z0-9]*") //알파벳 숫자0-9까지
	private String user_pw2;

[Usercontroller]
    
    @PostMapping("/join_pro")
	public String joing_pro(@Valid @ModelAttribute("joingUserBean") UserBean joinUserBean,BindingResult result) {
		//유효성검사
		if(result.hasErrors()) {
		 return "user/join";
	 }
		//파라미터 값을 주입받은 Bean을 셋팅함
		userService.addUserInfo(joinUserBean);
		
	 	return "user/join_success";
	}
xml버전에 셋팅

1. beans에 덮어쓰기

2.join.jsp도 덮어쓰기

3.userController에 덮어쓰기

 


 

메세지 셋팅하기

자바버전

※            . JoinUserBean.                :    controller에 주입받는 이름과 같아야 함

 

메세지로 등록하고 사용하기 위해서 serveltAppContext에 등록해야 함

<!-- messageSource를 등록한다 -->
	 <beans:bean class='org.springframework.context.support.ReloadableResourceBundleMessageSource' id='messageSource'>
	 	<beans:property name="basenames">
	 	  <beans:list>
	 	  		<beans:value>/WEB-INF/properties/error_message</beans:value>
	 	  </beans:list>
	 	</beans:property>
    </beans:bean>
 
  <!-- Message접근을 위한 접근자 등록 -->
	 <beans:bean class='org.springframework.context.support.MessageSourceAccessor'>
	    <beans:constructor-arg ref='messageSource'/>
	 </beans:bean>

 


비밀번호가 서로 같은지 확인하는 것은 validate를 활용해야 함

자바버전

1.package 추가 + userValidator class생성

   userbean 객체있는 값들 유효성 검사를 하기 위해 리턴값을 아래와 같이 작성한다.

   @Override
	public boolean supports(Class<?> clazz) {	
		return UserBean.class.isAssignableFrom(clazz);
	}

	@Override
	public void validate(Object target, Errors errors) {
		
		UserBean userBean = (UserBean)target;
		
		String beanName = errors.getObjectName();
	
		if(userBean.getUser_pw().equals(userBean.getUser_pw2()) == false) {
			errors.rejectValue("user_pw", "NotEquals");
			errors.rejectValue("user_pw2", "NotEquals");
		}
	}

 

pw2에 대한 에러메세지를 error)message_properties에 등록하기! 

NotEquals.joinUserBean.user_pw =비밀번호가 일치하지 않습니다.
NotEquals.joinUserBean.user_pw2 = 비밀번호가 일치하지 않습니다.

 

validator를 usercontoller에 등록하여 사용하기 위해 contoller를 아래와 같이 수정하기!

@InitBinder
	public void initBinder(WebDataBinder binder) {
		UserValidator validator1 = new UserValidator();
		binder.addValidators(validator1);
	}

실행결과가 아래와 같이 나온다.

 

xml 버전 

 1.validator package 복붙

 2. 에러메세지 properties에 복사

 3. usercontoller에 initbinder 코드 복붙하기

 4. 실행 후 확인하기

'Coding > spring' 카테고리의 다른 글

부트스트랩 이용해서 에러메세지 띄워보기  (1) 2022.09.23
회원정보 수정  (0) 2022.09.16
Jquery를 활용한 예제  (0) 2022.08.26
[공부note]  (0) 2022.08.24
1학기 복습타임!  (0) 2022.08.19