흔히 반복되는 css, js의 경우 별도의 resources 폴더에 jsp파일을 만들어 include로 불러와서 반복되는 코드를 줄이면서 사용할 수 있다. 이때 발생하는 실수가 실제 css ,js 파일의 경로를 입력하는 것이다. 모든 요청은 dispacherServlet을 거치게 되어있다 이때 해당 controller를 찾고 경로에 따라 실행을 하기 때문에 실제 css, js가 존재하는 경로는 잘못된 경로로 인식하게 되어 페이지에러가 난다. 이를 해결하려면 sevelrt-context.xml 에서 resources 를 설정하면된다
sevelrt-context.xml
아래의 코드의 뜻은 resources를 시작하는 모든 요청은 controller를 거치지 않고 resources폴더에서 바로 찾아라 라는 뜻이다.
<resources mapping="/resources/**" location="/resources/" />
header.jsp
resources에 있는 css,js를 불러오고자 할때는 jstl의 url을 사용해야한다 value에는 contextPath는 생략하고 사용하면된다. 이때 jstl을 사용하는 이유는 Context Path를 자동으로 붙여주기 때문이다. 안 그러면 요청경로가 이상해진다.
<link rel="stylesheet" href="<c:url value='/resources/FullCalendar/vendor/css/bootstrap.min.css'/>">
main.jsp
include를 사용하여 가져다 사용한다
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<%@ include file="../include/header.jsp" %>
<title>Insert title here</title>
</head>
<body>
include 사용하여 정적인 css, js 파일 불러오기
</body>
</html>
'Spring' 카테고리의 다른 글
Spring json response 보내는 방법 (0) | 2022.12.02 |
---|---|
Spring Ajax 사용시 json으로 응답하기 (0) | 2020.05.12 |
Spring mybatis 값에 따른 쿼리 실행 (0) | 2020.05.09 |
Spring mybatis 단일파라미터 전송시 no getter 에러 (0) | 2020.05.09 |
Spring mybatis resultMap (0) | 2020.05.07 |