WEB/JAVA

화면에 원하는 에러메시지 보내기

간단한 기본 등록 페이지라서 다른코드와 똑같이 하다가 약간 변화를 주었다.

html 에서 ajax로 서버에게 요청할때 success 즉 통신에 성공하고 java 에서 return 으로 ok (boolean) 을 내려주면 message 를 띄어준다. 

    const updateDriver = function () {

      if (confirm("등록하시겠습니까?")) {
        $.ajax({
          type: "POST",
          url: "/create",
          data: $("#createForm").serialize(),
          dataType: 'json',
          success: function (r) {
            alert(r.message);
            if (r.OK) {
              location.href = '/list';
            }
          },
          error: function (xhr, status, error) {
            alert(error);
          }
        });
      }
    }

 

try-catch 를 적용해보았다  User.createUser(dto) 에서 Assert.hasText() 를 통해 유효성이 검증되지 않으면 예외를 던진다. 어떤 예외인지 확인하려면 해당 클래스로 이동하여 확인한다.

IllegalArgumentException 을 catch 하면 될것같다

 

  @Transactional
  @Override
  public ServiceResult create(Dto dto) {
    ServiceResult serviceResult = ServiceResult.builder().OK(false).build();
    try {
      repository.save(User.createUser(dto));
    } catch (IllegalArgumentException e) {
      serviceResult.setMessage(e.getMessage());
      return serviceResult;
    }
    serviceResult.setMessage("사용자 등록이 완료되었습니다.");
    serviceResult.setOK(true);
    return serviceResult;
  }

 

public static User createUser(Dto dto) {
    Assert.hasText(dto.getName(), "사용자 이름은 필수 입니다.");
    Assert.hasText(dto.getCellphone(), "사용자 휴대폰 번호는 필수 입니다.");
    return User.builder()
        .name(dto.getName()).cellPhone(dto.getCellphone()).build());
  }

 

이렇게 하면 화면에서 유효성 검사 + 서버에서도 유효성 검사를 해서 스크립트 오류가 나더라도 원하는 에러메시지를 반환할 수 있다.

반응형

'WEB > JAVA' 카테고리의 다른 글

제네릭 DTO  (0) 2023.03.14
나만 어려운 예외처리  (0) 2022.05.19
Enum Type 에서 Function Interface 활용  (0) 2022.04.01
Test-Driven-Development 테스트 주도 개발  (0) 2022.03.24
Java 8 Interface - default 메서드, static 메서드  (0) 2022.03.23