티스토리 뷰
728x90
1. 스프링에서 View를 사용하는 방식은 이미 철지난 이야기이지만 그냥 붙여둔다.
2 우선 Error handler를 위한 Controller을 하나 만든다.
2-1 모든 에러는 error.jsp로 넘기고 있다.
2-2 필요하면 여기서 데이터베이스에 에러를 저장하거나 하는 작업을 한다.
package pe.pilseong.steps.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.servlet.ModelAndView;
@Controller("error")
public class ErrorController {
@ExceptionHandler(Exception.class)
public ModelAndView handleException(HttpServletRequest request, HttpServletResponse response, Exception ex) {
ModelAndView mv = new ModelAndView();
mv.addObject("exception", ex.getStackTrace());
mv.addObject("url", request.getRequestURI());
mv.setViewName("error");
return mv;
}
}
3. 사용자에게 에러를 보여주는 error.jsp 에러내용은 숨겨야 한다.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head>
<title>Spring Boot Normal Web Application</title>
<link href="webjars/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
<link href="webjars/bootstrap-datepicker/1.0.1/css/datepicker.css" rel="stylesheet">
</head>
<body>
<nav role="navigation" class="navbar navbar-default">
<div class="">
<a href="http://www.in28minutes.com" class="navbar-brand">in28Minutes</a>
</div>
<div class="navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="/">Home</a></li>
<li><a href="/list-todos">Todos</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="/logout">Logout</a></li>
</ul>
</div>
</nav>
<div class="container">
An exception occurred! Please contact Support!
</div>
<script src="webjars/jquery/1.9.1/jquery.min.js"></script>
<script src="webjars/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="webjars/bootstrap-datepicker/1.0.1/js/bootstrap-datepicker.js"></script>
<script>
$('#targetDate').datepicker({
format: 'dd/mm/yyyy'
});
</script>
</body>
</html>
728x90
'Spring > Spring Basic' 카테고리의 다른 글
Spring Basic : profile 사용하기 - 1 (0) | 2020.07.09 |
---|---|
Spring Basic : XML 결과값 생성 (0) | 2020.07.09 |
Spring Basic : form 바인딩 @InitBinder와 Converter (0) | 2020.07.08 |
Spring Basic : Project Lombok (0) | 2020.06.30 |
Spring Basic : H2 Database 신경 쓸 것들 (0) | 2020.06.26 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib
TAG
- 자바
- 설정하기
- MYSQL
- Validation
- one-to-many
- crud
- RestTemplate
- spring boot
- Rest
- 스프링
- Many-To-Many
- Spring Security
- jsp
- hibernate
- 매핑
- 외부파일
- 하이버네이트
- Spring
- 로그인
- 설정
- XML
- form
- mapping
- 스프링부트
- login
- Security
- Angular
- WebMvc
- one-to-one
- 상속
250x250