DAY-74 Spring 에러처리, 어노테이션, ajax

1 minute read

💻2022-06-17

❗ 수업을 듣고, 개인이 공부한 내용을 적은 것 이기에 오류가 많을 수도 있음

1️⃣ 버튼의 value를 줘서 삭제하기

output.jsp

  • 버튼에 value를 줘서 클릭 시 해당 글의 seq_no를 알 수 있게한다 → value=”${dto.no}”
  • 현재 버튼을 눌렀을 때 그 버튼의 value를 아는 방법은 e.target.value 혹은 this.value를 이용한다.

HomeController.java

  • delete 함수의 인자의 변수명과 output.jsp에서 넘겨주는 키 값(no)이 같아야 한다(input과 같은 경우 input의 name과 일치해야함)

2️⃣ input을 숨겨놓고 value 값 전송

HomeController.java

Modify.jsp

  • 해당 글 번호를 전송시키기 위해서 안보이는 input을 만들어준다

3️⃣ 에러 처리

@ExceptionHandler

  • controller 내부에 있으면 예외가 발생했을 해당 메서드를 자동 실행

MessageDAO

  • controller에게 에러를 throw 하고 있다.

HomeController.java

  • 기존 : DAO에서 throws 해준 예외 처리를 메서드 내의 try catch문을 이용했다.
  • 새로운 방법 : 메서드 내의 try catch없애고 다시 한번 throws Exception을 해준다 → ExceptionHandler 어노테이션이 붙어 있는 메서드가 에러를 처리한다.
  • 특정한 에러만 처리하려면 @ExceptionHandler(처리해주고 싶은 예외명을 명시)를 사용한다

4️⃣ 한글 인코딩 필터 설정

  • web.xml에서 filter로 설정

5️⃣ ajax로 값 전송 및 값 받기

@ResponseBody 이용

  1. ajax 요청 값에 대한 반환
  2. ResponseBody 어노테이션을 이용하면 반환 값이 ViewResolver한테 가지 않고 controller 메서드를 요청한 jsp쪽 ajax쪽으로 그대로 반환 값이 돌아간다. (즉 A.jsp 에서 controller로 ajax 요청시 , controller의 메서드에서 return 값을 A.jsp의 data로 돌려준다)
보통은 @Controller 어노테이션을 이용하여Controller를 생성했을때,
(ViewResolver에 의해) return 값으로 반환하는 문자열 이름의 view 페이지를 띄어준다.
만약, View 페이지가 아닌 반환값 그대로 클라이언트한테 return 하고 싶은 경우 @ResponseBody를 사용하면 된다.

HomeController.java

output2.jsp(ajax이용 페이지)

Categories:

Updated:

Leave a comment