티스토리 뷰

카테고리 없음

ValidationContext 소개

행복[HappY] 2025. 3. 9. 04:00

ValidationContext에 대한 설명

ValidationContext는 Spring Web Flow에서 데이터 유효성 검사를 수행할 때 사용되는 인터페이스입니다. 사용자가 입력한 데이터를 검증하고, 오류가 발생하면 이를 MessageContext에 추가하여 화면(View)에서 적절한 피드백을 제공할 수 있도록 합니다.

 

 

 

1. ValidationContext의 역할

Spring Web Flow에서는 ValidationContext를 통해 특정 상태(State)에서 입력된 데이터를 검증할 수 있습니다. 이를 활용하면 사용자가 입력한 값이 올바른지 확인하고, 필요할 경우 오류 메시지를 제공할 수 있습니다.

 

주요 기능

  1. 유효성 검사 실행
    • 폼 입력값을 검증하고 오류가 있는 경우 메시지를 추가합니다.
  2. 현재 상태(State) 정보 제공
    • 현재 Flow에서 어느 상태에서 검증이 수행되는지 확인할 수 있습니다.
  3. 메시지 컨텍스트(MessageContext)와 연동
    • 검증 과정에서 발생한 오류를 MessageContext에 추가하여 사용자에게 피드백을 제공합니다.

 

 

 

2. ValidationContext 사용 예시

예제 1: 간단한 폼 검증

public void validateUser(User user, ValidationContext context) {
    MessageContext messages = context.getMessageContext();

    if (user.getName() == null || user.getName().trim().isEmpty()) {
        messages.addMessage(new MessageBuilder()
                .error()
                .source("name")
                .defaultText("이름을 입력해야 합니다.")
                .build());
    }

    if (user.getAge() < 18) {
        messages.addMessage(new MessageBuilder()
                .error()
                .source("age")
                .defaultText("나이는 18세 이상이어야 합니다.")
                .build());
    }
}

설명

  • ValidationContext에서 getMessageContext()를 사용하여 메시지를 추가할 수 있습니다.
  • MessageBuilder()를 이용해 특정 필드(name, age)에 대한 검증 오류를 추가하고, 오류가 발생하면 화면에서 이를 표시할 수 있습니다.

 

예제 2: 특정 상태에서 검증 실행

public void validateUserOnRegistration(User user, ValidationContext context) {
    if ("registration".equals(context.getUserEvent())) {
        MessageContext messages = context.getMessageContext();

        if (user.getEmail() == null || !user.getEmail().contains("@")) {
            messages.addMessage(new MessageBuilder()
                    .error()
                    .source("email")
                    .defaultText("유효한 이메일 주소를 입력하세요.")
                    .build());
        }
    }
}

설명

  • context.getUserEvent()를 사용하면 특정 이벤트(registration 상태)에서만 검증이 수행되도록 설정할 수 있습니다.
  • 이 검증은 사용자 등록 단계에서만 실행됩니다.

 

 

 

3. ValidationContext의 주요 메서드

메서드 설명

getMessageContext() 검증 오류 메시지를 추가할 수 있는 MessageContext를 반환합니다.
getUserEvent() 현재 실행 중인 사용자 이벤트(예: submit, next, registration)를 가져옵니다.
getActiveFlow() 현재 실행 중인 Flow 정보를 가져옵니다.

 

 

 

4. ValidationContext를 사용한 검증 흐름

  1. 사용자가 데이터를 입력하고 제출(submit)합니다.
  2. Spring Web Flow에서 ValidationContext를 사용하여 유효성 검사를 실행합니다.
  3. 오류가 발생하면 MessageContext에 메시지를 추가합니다.
  4. 사용자에게 오류 메시지가 표시됩니다.
  5. 모든 검증을 통과하면 Flow가 다음 단계로 진행됩니다.

 

 

 

5. ValidationContext 사용 시 주의할 점

  1. 검증 대상이 되는 상태를 명확히 정의해야 합니다.
    • context.getUserEvent()를 사용하여 특정 상태에서만 검증이 수행되도록 제한하는 것이 좋습니다.
  2. 검증 오류 메시지는 사용자 친화적으로 작성해야 합니다.
    • 메시지는 MessageBuilder()를 통해 설정하며, 명확하고 이해하기 쉬운 내용을 제공해야 합니다.
  3. 다국어 지원을 고려해야 합니다.
    • defaultText() 대신 code()를 활용하면 다국어 지원이 가능합니다.

 

 

 

6. 요약

  • ValidationContext는 Spring Web Flow에서 데이터 검증을 수행하는 인터페이스입니다.
  • getMessageContext()를 사용하여 검증 실패 시 오류 메시지를 추가할 수 있습니다.
  • getUserEvent()를 활용하여 특정 이벤트에서만 검증이 실행되도록 설정할 수 있습니다.
  • 폼 검증, 상태별 검증, 메시지 처리 등을 효과적으로 수행할 수 있습니다.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함