반응형
Tiles framework 란?
Tiles allows authors to define page fragments which can be assembled into a complete pages at runtime. These fragments, or tiles, can be used as simple includes in order to reduce the duplication of common page elements or embedded within other tiles to develop a series of reusable templates. These templates streamline the development of a consistent look and feel across an entire application.
Tiles는 웹 프로그래머가 페이지를 모듈화 하기 위한 목적으로 사용. 여러조각의 모듈들을 런타임에 하나의 페이지로 조립해서 사용 할 수 있게끔 도와주는 프레임워크. 상단 메뉴, 좌측 메뉴 등 공통적으로 사용할 페이지들을 모듈화 해서 변경되어야 하는 부분만 쉽게 변경해 사용 할 수 있게 도움.
2017년 7월 이후로 새로운 버전이 나오지 않고 있지만, deprecated 된 건 아니고 더이상 필요한 부분이 없을만큼 잘 개발 되어있어 그렇다고 한다.
Sample프로젝트에 적용
의존성 추가(gradle)
// spring boot에서는 기본적으로 JSP를 지원하지 않음, 또한 내장된 Tomcat에는 컴파일하는 jsp관련 엔진이 포함되지 않음
implementation 'javax.servlet:jstl:1.2'
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
//tiles 관련 라이브러리(3.0.8이 최신버전)
implementation 'org.apache.tiles:tiles-jsp:3.0.8'
implementation 'org.apache.tiles:tiles-servlet:3.0.8'
implementation 'org.apache.tiles:tiles-core:3.0.8'
implementation 'org.apache.tiles:tiles-api:3.0.8'
implementation 'org.apache.tiles:tiles-el:3.0.8'
의존성 추가(maven)
<!-- https://mvnrepository.com/artifact/org.apache.tiles/tiles-jsp -->
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-jsp</artifactId>
<version>3.0.8</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
application설정
// application.properties
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
// application.yml
spring:
mvc:
view:
prefix=/WEB-INF/jsp/
suffix=.jsp
prefix 경로는 jsp파일이 있는 디렉토리 위치로 정해주면 된다.
Controller설정
@Controller
public class BoardController {
...
@RequestMapping(value = "/boards/test")
public String test() {
return "web/common/main";
}
...
}
테스트
404에러가 발생한다.
jsp파일을 불러오는 경로가 잘못되었다.
Spring 구조에 대해 모르고 있었다.
context에서 수정하면 된다라고 생각했다. 그래서 resource에 다 집어넣고 추후에 변경하려고 했다.
기본값으로 보는 경로자체를 잘못 이해하고 있었다. 그래서 잘못된 경로를 바라보고 있었다.
디렉토리 구조는 이 글을 참고.
경로 수정 후 2트
이제 경로는 정상적으로 바라 보게 된다.
하지만 javax.servlet.jsp.tagext.SimpleTagSupport에러 발생
해당 에러는 잘못된 태그사용으로 발생한다고 한다. Custom으로 작성을 하던가 아니면 정상 태그로 수정해야 한다.
확인해보니 아직 tiles-definition을 정상적으로 구현하지 않아놓고 main.jsp에 태그를 넣어 에러가 발생한것이다.
단순 페이지 로드 테스트용으로 심플하게 작성
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>Title</title>
</head>
<body>
hello!
</body>
</html>
정상 페이지 반환!!
반응형
'Backend > Utils' 카테고리의 다른 글
[POI] 엑셀 업로드시 중복값 체크 (0) | 2024.03.13 |
---|---|
[gitHub]Large files detected. You may want to try Git Large File Storage (0) | 2024.03.12 |
[Tomcat] Invalid byte tag in constant pool : 19, Tomcat로그 한글깨짐 (0) | 2024.02.28 |
JavaMailSender 사용시 에러 (0) | 2024.02.19 |
[Feat] Pagenation, Select 옵션 (0) | 2023.10.29 |