일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 제네릭 와일드 카드
- Study Halle
- System.in
- auto.create.topics.enable
- 로컬 클래스
- 함수형 인터페이스
- Switch Expressions
- annotation processor
- 자바스터디
- throwable
- 람다식
- yield
- 제네릭 타입
- 항해99
- 접근지시자
- 브릿지 메소드
- System.err
- junit 5
- 스파르타코딩클럽
- 합병 정렬
- docker
- System.out
- 바운디드 타입
- github api
- 프리미티브 타입
- 자바할래
- 상속
- 익명 클래스
- raw 타입
- 정렬
Archives
- Today
- Total
코딩하는 털보
11 to 9, Day 9 본문
Today, ToDoList
- Toy Project - NGMA
- 예외 처리 추가
예외 처리 추가
본인을 짝꿍으로 선택할 때 예외
@Test
@WithUserDetails(value = "jilee@example.com", setupBefore = TestExecutionEvent.TEST_EXECUTION)
public void pickMySelf() throws Exception {
AccountDto accountDto = new AccountDto();
accountDto.setEmail("jilee@example.com");
String accountDtoJson = objectMapper.writeValueAsString(accountDto);
mvc.perform(post("/account/pick")
.contentType(MediaType.APPLICATION_JSON)
.content(accountDtoJson))
.andDo(print())
.andExpect(status().isBadRequest())
.andExpect(content().string("자신은 짝꿍이 될 수 없어요.."));
}
public void pickLover(Account account, Account lover) {
if (account.getEmail().equals(lover.getEmail())) {
throw new PickMySelfException();
}
account.setLover(lover);
lover.getWaiter().add(account);
account.setLoverState(LoverState.WAITING);
accountRepository.save(account);
accountRepository.save(lover);
}
public class PickMySelfException extends RuntimeException{
public PickMySelfException() {
super("자신은 짝꿍이 될 수 없습니다.");
}
}
response를 문자열로 받아서 Modal 본문으로 전달하기
modal-body에 비어있는 form-control-error 요소 추가
<div class="modal-body">
<form class="needs-validation" novalidate>
<div class="col-sm-10">
<label for="email" class="form-label">상대방의 Email 주소를 입력해주세요.</label>
<input type="email" class="form-control" id="email" name="email" placeholder="" value="" required>
<div class="invalid-feedback">
상대방의 Email 주소를 입력해 주세요.
</div>
<div class='form-control-error'></div>
</div>
</form>
</div>
ajax error 부분을 response 받아서 Modal 화면에 출력하도록 변경
function submitCoupleForm(){
$.ajax({
type: "POST",
url: "http://localhost:8080/account/pick",
contentType: "application/json",
dataType: "json",
cache:false,
data: JSON.stringify($("form#coupleForm").serializeObject()),
success: function(response){
$("#coupleModal").modal('hide');
loadCoupleState();
},
error: function(request){
$(".form-control-error").empty();
$(".form-control-error").append(request.responseText);
}
});
}
Modal을 닫고 다시 열었을때 오류 내용을 제거하기 위해 js 함수 추가
$(document).ready(function () {
$(document).on("click","[data-bs-dismiss='modal']",function (event) {
$(".form-control-error").empty();
});
});
Comments