사이트 출력시 사용하는 siteMesh에 대한 설명
1. 사이트 매쉬 설정 파일 설명
- web.xml
- sitemesh.xml
- decorator.xml
web.xml application에 대한 설정 및 url에 대한 filter정의를 한다.
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>
com.opensymphony.module.sitemesh.filter.PageFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
모든 URL에 대해서 sitemesh를 이용하게 해주는 설정 url-pattern 기준으로
com.opensymphony.module.sitemesh.filter.PageFilter 를 통해서 페이지가
출력 되게 설정 작업을 한다.
sitemesh.xml의 경우 사이트 매쉬에서 어떤 내용의로 사이트 매쉬를 사용할지와
출력과 관련된 설정 파일인 decorator.xml을 어떤 파일로 사용 하는지 정의 하게
된다.
<property name="decorators-file" value="/WEB-INF/decorator.xml"/>
<excludes file="${decorators-file}"/>
<mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
<param name="config" value="${decorators-file}" />
</mapper>
decorators-file에 정의한 경로의 decorator.xml파일의 설정 내용을 출력시 사용한다는
내용 입니다.
decorator.xml 파일의 경우 어떤 url에 대해서 출력할 layout파일을 정의 하는 설정이
있는 파일 입니다.
<decorators defaultdir="/WEB-INF/views/-decorator"> 으로 layout파일의 경로를 정의
하고 excludes 설정으로 사이트매쉬를 이용하지 않을 url패턴과
decorator 태그를 이용해서 url패턴별로 layout파일의 위치를 정의 하게 됩니다.
2. 사이트 매쉬 layout 파일 설명
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="decorator" uri="http://www.opensymphony.com/sitemesh/decorator" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<% response.setHeader("X-UA-Compatible", "IE=edge,chrome=1"); %>
<!doctype html>
<html lang="ko">
<head>
<decorator:head />
</head>
<body onload="<decorator:getProperty property="body.onload" />" <decorator:getProperty property="body.id" writeEntireProperty="true" /> <decorator:getProperty property="body.class" writeEntireProperty="true" />>
<decorator:body />
</body>
</html>
위의 내용 기준으로 decorator: 이후에 설정된 부분에 대한 내용을 통해서 데이터를 출력 할 수 있습니다.
사이트 매쉬의 경우 출력하려는 jsp파일의 내용을 정해진 내용에 맞춰서 출력 해주게 됩니다.
<html>
<head>
<title>제목 출력 입니다.</title>
<script>
alert("hello");
</script>
</head>
<body onload="onload" id="" class="">
<div>내용 출력</div>
</body>
</html>
의 파일을 출력 하는 경우
<title>제목 출력 입니다.</title>
<script>
alert("hello");
</script>
의 내용이 <decorator:head /> 부분에
<div>내용 출력</div>
의 내용이 <decorator:body /> 부분에 출력
되며 body안의 onload="onload" id="" class="" attribute들도
onload="<decorator:getProperty property="body.onload" />" <decorator:getProperty property="body.id" writeEntireProperty="true" /> <decorator:getProperty property="body.class" writeEntireProperty="true" />
에 출력 됩니다.
'개발도구' 카테고리의 다른 글
maven jar파일 임의 추가 (0) | 2015.03.25 |
---|---|
텍스트 인코딩 변환 프로그램 (0) | 2015.03.09 |
error validating server certificate for svn windows (0) | 2015.03.05 |
JAVADOC파일 생성시 한글 문제로 파일 생성이 안되거나 할때 (0) | 2015.03.05 |
log4sql 사용 방법 (0) | 2015.03.05 |