본문 바로가기

Spring

회원가입 시 설정한 조건에 맞지않는 경우 오류 발생_Spring

회원가입 시 설정한 조건에 맞지않는 경우 오류 발생

@Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }

//SecurityConfig.java 파일에 삽입

위 코드를 삽입하면 아래 코드를 사용 가능

//userService.java
user.setPassword(passwordEncoder.encode(password));
//사용 가능

 

//userController.java
public String signup(@Valid UserCreateForm userCreateForm, BindingResult bindingResult) {
        if (bindingResult.hasErrors()) {
            return "signup_form";
        }

        if (!userCreateForm.getPassword1().equals(userCreateForm.getPassword2())) {
            bindingResult.rejectValue("password2", "passwordInCorrect", 
                    "2개의 패스워드가 일치하지 않습니다.");
            return "signup_form";
        }
				try {
			            userService.create(userDto);
			        }catch(DataIntegrityViolationException e) {
			            e.printStackTrace();
			            bindingResult.reject("signupFailed", "이미 등록된 사용자입니다.");
			            return "signup_form";
			        }catch(Exception e) {
			            e.printStackTrace();
			            bindingResult.reject("signupFailed", e.getMessage());
			            return "signup_form";
			        }

아래 코드를 html에 삽입하면 꼭 필요한 값이 입력되지 않은 상태로 제출했을 때

미리 입력한 오류 문구가 뜬다.

//join.html
<form th:action="@{/user/join}" th:object="${userDto}" method="post">
    <div class="alert alert-danger" role="alert" th:if="${#fields.hasAnyErrors()}">
        <div th:each="err : ${#fields.allErrors()}" th:text="${err}" />

'Spring' 카테고리의 다른 글

@Scheduled, cron  (2) 2022.10.12
Spring 프로젝트에 템플릿 적용하기  (2) 2022.09.27
Spring 회원가입(1) _ SecurityConfig 설정  (2) 2022.09.20
Spring_Entity : mappedBy , cascade  (2) 2022.09.15
점프 투 스프링부트 _ 1日  (2) 2022.09.15