Rabu, 18 Maret 2009

Sitemesh - bagian 1

Sitemesh 2.1

Arsitektur Sitemesh di dasarkan pada Filters, yang namanya PageFilter class. Ketika Container menerima request dari sebuah page, maka ia akan meneruskan ke PageFilter yang akan membuat custom response object, untuk mengumpulkan application's response, dan meneruskan ke web application sesuai dengan permintaan. Web application akan menuliskan resource yang diminta dalam custom response object dan akan mengebalikan ke PageFilter.

library sitemesh-2.1.jar

Cara membentuk sitemesh :
1. setting web.xml
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>
com.opensymphony.module.sitemesh.filter.PageFilter
</filter-class>
<init-param>

<param-name>debug.pagewriter</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>

<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


2. buat decorators.xml dalam folder WEB-INF
<decorators defaultdir="/decorators">
<!-- Decorator for pages which need Sidemenu -->
<decorator name="sidemenu" page="sidemenu.jsp">
<pattern>/home.jsp</pattern>
</decorator>

<!-- Decorator for pages which need header and footer -->
<decorator name="headerfooter" page="headerfooter.jsp">
<pattern>/help.jsp</pattern>
</decorator>
</decorators>


3. buat headerfooter.jsp dalam folder WebContent/decorators
<%@ taglib
uri="http://www.opensymphony.com/sitemesh/decorator"
prefix="decorator" %>
<html>
<head>
<title>
My Site - <decorator:title default="Welcome!" />
</title>
<decorator:head />
</head>
<body>
<table>
<tr>
<td>
<H1>
SiteMesh Corporation
<H1>
</td>
</tr>
<tr>
<td><decorator:body /></td>
</tr>
<tr>
<td> SiteMesh copyright</td>
</tr>
</table>
</body>
</html>


4. buat help.jsp dalam folder WebContent
<HTML>
<HEAD>
<%@ page
language="java"
contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"
%>
<TITLE>Help Page</TITLE>
</HEAD>
<BODY>
Help Page
</BODY>
</HTML>


dan hasil akhirnya adalah



hasil awal headerfooter.jsp


isi folder sitemesh


diambil dari : http://www.onjava.com/pub/a/onjava/2004/09/22/sitemesh.html

1 komentar: