1
2
3
4
5
6
7
8
9
|
// 새로운 패키지에 다음과 같은 클래스를 만들어 준다
package com.ds.exception;
@ResponseStatus(HttpStatus.NOT_FOUND)
public class ResourceNotFoundException extends RuntimeException {
}
| cs |
ExceptionHandler에서 다음과 같이 ResourceNotFoundException.class
를 값으로 받는다.
p2 폴더에 있는 pagenotfound jsp로 보낸다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
//controller
@ExceptionHandler(ResourceNotFoundException.class)
public String myException(){
return "p2/pagenotfound";
}
@RequestMapping(value = "/{name}", method=RequestMethod.GET)
public String p2_board(@PathVariable("name")String name){
if(name.equals("null")){
throw new ResourceNotFoundException();
}
return "redirect:p2_board";
}
| cs |
JSP에 home으로 보내는 태그를 만들어 준다.
1
2
3
4
5
6
7
|
// JSP
<body>
<h3>페이지가 존재하지 않습니다</h3>
<br/>
<a href = "p2_board">홈으로</a>
</body>
| cs |
@Pathvariable 어노테이션
URL 경로에 변수를 넣어주는 기능
추가설명 :http://hellogk.tistory.com/85
@RequestMapping(value = "/{name}", method=RequestMethod.GET)
public String p2_board(@PathVariable("name")String name){
if(name.equals("null")){
throw new ResourceNotFoundException();
}
name 값이 null이라는 문자라면 ResourceNotFoundException() 으로 throw 한다.
예제 화면
이와 같이 이 원리를 반대로 사용하여
자신이 만든 여러 페이지의 주소값을 주어 그 페이지가 같지않으면
예외 페이지를 띄우게 사용하게 할 수 있다.
댓글 없음:
댓글 쓰기