2017년 7월 17일 월요일

없는페이지 예외페이지로 보내기




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 한다.

예제 화면


이와 같이 이 원리를 반대로 사용하여 
자신이 만든 여러 페이지의 주소값을 주어 그 페이지가 같지않으면 
예외 페이지를 띄우게 사용하게 할 수 있다.
























댓글 없음:

댓글 쓰기