-
[JSP] Apache TilesBack End/etc 2022. 4. 13. 18:35
Apache Tiles
그 중에서도 리액트마냥 컴포넌트 단위로 작성할 수 있게 끔 해주는 라이브러리
templates 을 만들고 contents 를 채워가는 방식
상속을 이용하여 html 을 조립하고, 런타임 시 페이지들이 조각되어 만들어진다.
Apache Tiles 의 상속
1. tiles-definition.xml 의 정의
해당 xml 에 <definition> 으로 사용할 컴포넌트(.jsp)를 정의한다.
<definition> 하위에 <put-attribute> 로 상속시킬 하위 컴포넌트(.jsp)들을 입력한다.
* put-attribute 에 입력한다고 html 에 자동으로 컴포넌트가 추가되는게 아니다.
* 실질적인 호출이 있기 전까지는 html 에 추가되지 않는다.> [tiles-definition.xml]
<definition name="base-layout" template="/WEB-INF/views/tiles/template/base-layout.jsp"/> <put-attribute name="title" value="Ping9's Blog"/> <put-attribute name="body" value=""/> <put-attribute name="page-script" value=""/> </definition> <definition name="dashboard" extends="base-layout"> <put-attribute name="title" value="Welcome to My DashBoard!"/> <put-attribute name="body" value="/WEB-INF/views/pages/dashboard/main.jsp"/> <put-attribute name="page-script" value="/resources/dist/js/dashboard.js"/> </definition> <definition name="stylesheet" template="/WEB-INF/views/tiles/component/stylesheet.jsp"/>
2. 상속받은 컴포넌트의 호출
dashboard 는 base-layout 을 상속 받아 body 에 main.jsp 가 삽입된다.
코드 예시 보는게 가장 빠르다.> [base-layout.jsp]
<head> <tiles:importAttribute name="title" /> <tiles:insertDefinition name="stylesheet" /> <script type="text/javascript" src="<tiles:getAsString name="page-script"/>"></script> </head> <body> <div> <tiles:insertAttribute name="body" /> </div> </body>
> [ViewController.java]
public class ViewController { @GetMapping("/dashboard") public ModelAndView getDashboard(HttpSession session) { ModelAndView mav = new ModelAndView("dashboard"); /* ... business logic here ... */ return mav; } }
728x90'Back End > etc' 카테고리의 다른 글
Redis 전체 키 조회, 삭제 등 명령어 모음 (0) 2023.04.28 클라이언트 IP 알아내는 법 (0) 2023.04.25 [PHP] CURL 은 리다이렉트 응답이 오면 재요청하지 않는다. (feat. CURL 관련함수 정리) (0) 2022.06.05 [PHP] Mac 에서 PHP Composer 설치 및 커맨드 전역설정하기 (0) 2022.05.21 [Apache2] Homebrew Apache2(httpd) 설치 & 가상호스트 설정 & 프로젝트폴더 Apache 서버로 구동시키기 (0) 2022.05.21