According to OpenSymphony, SiteMesh: Is a web-page layout and decoration framework and web application integration framework to aid in creating large sites consisting of many pages for which a consistent look/feel, navigation and layout scheme is required
Intercepts requests to any static or dynamically generated HTML page requested through the web server, parses the page, obtains properties and data from content, and generates appropriate final page with modifications to original—based on Decorator design pattern.
Can also include entire HTML pages as a Panel within another page—similar to Server Side Includes, except HTML document modified to create a visual window (using document's Meta-data as aid) within a page. Using this feature, Portal type web sites can be built very quickly and effectively. This is based upon the well-known Composite design pattern.
Built on Java 2 with Servlet, JSP and XML technologies. This makes it good for use with Java EE applications, however it can be integrated with non-Java server-side web architectures, like CGI (Perl/Python/C/C++/etc), PHP, and ColdFusion. Very extensible, designed for easy extension for custom needs
Apache Struts is an open-source web application framework for developing Java EE web applications. It uses and extends the Java Servlet API to encourage developers to adopt a model–view–controller (MVC) architecture. It was originally created by Craig McClanahan and donated to the Apache Foundation in May, 2000. Formerly located under the Apache Jakarta Project and known as Jakarta Struts.
Tag References :-These tags are used to create page Decorators. A Decorator is typically built up from an HTML layout with these tags inserted to provide place-holders for the data from the original (undecorated) page.
1.Decorator Head :Insert contents of original page's HTML head tag. The enclosing tag will not be be written.
2.Decorator Body :contents of original page's HTML body tag.
3.Decorator Title :Insert title of page being decorated. The value is obtained from title tag.
these three are widely use Click Here To Learn More
Create a web project and add this library download SiteMesh Jar:-
Add a filter mapping for sitemesh to web.xml file like this:-
web.xml
Sitemesh struts2 org.apache.struts2.dispatcher.FilterDispatcher sitemesh com.opensymphony.module.sitemesh.filter.PageFilter sitemesh /* REQUEST FORWARD struts2 /* REQUEST FORWARD index.jsp
struts.xml
/dashboard.jsp
SiteMesh out of the box uses sitemesh.xml which contains mappers to how decorators are applied.
sitemesh.xml
decorators.xml
Stop pages from being decorated by adding them to the excludes list superceeds. This is because when pages were mapped to a non-existent decorator they were still buffered internally by Sitemesh. By using the exclude list Sitemesh will not let the request pass straight through to the servlet container without any buffering. Action Class/nodecorate/* *.css /scripts/* /images/* /*.htm /*.html /*
package com.javastoreroom.action; import com.opensymphony.xwork2.ActionSupport; public class HomeAction extends ActionSupport { private static final long serialVersionUID = 1L; public String home() { System.out.println("Check Here -----------> :"); return SUCCESS; } }index.jsp
<%response.sendRedirect("home.html");%>dashboard.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>Set Decorator Template By this page frontlayout.jspInsert title here
Username :-
Password :-
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="s" uri="/struts-tags"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@taglib prefix="decorator" uri="http://www.opensymphony.com/sitemesh/decorator" %>homeheader.jsp<%@include file="../jsp/homeheader.jsp"%> <%@include file="../jsp/homefooter.jsp"%>
homefooter.jspHome | Menu | Profile
finally you when executing project following home page pattern are shown :- Feature 1. Built with Java, the industry standard for enterprise applications.@copyright 2013 javastoreroom.blogspot.com
2. Open source software distributed under the OpenSymphony Software.
3. Simple Eliminates the need to create multiple web-apps for different audiences.Web pages maintaining a consistent look-and-feel across your web-application.
4. Very flexible Map a decorator based on a cookie value.
5. Integrated Supports Velocity and Freemarker & other technologies (CGI, Perl, MS ASP... anything that renders html) for writing decorators.
This comment has been removed by the author.
ReplyDeleteI have learned a few new ideas through this Blog. Im very happy and thankyou very much for sharing this.
ReplyDeleteStruts Training in Chennai
Struts Training
Struts Training in Velachery
Wordpress Training in Chennai
Wordpress course in Chennai
Spring Training in Chennai
Hibernate Training in Chennai
Struts Training in Chennai