DAY-74 Spring 에러처리, 어노테이션, ajax
💻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 이용
- ajax 요청 값에 대한 반환
- 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이용 페이지)
Leave a comment