我已经看到Sitemesh与Spring和Freemarker(FTL)一起使用。因此,我想通过示例了解什么是Sitemesh,以及它与FTL一起使用。
最佳答案
@see:http://www.opensymphony.com/sitemesh/
它是什么?
SiteMesh是一个网页布局和装饰框架以及Web应用程序集成框架,可帮助创建包含许多页面的大型站点,这些页面需要一致的外观,导航和布局方案。
SiteMesh拦截对通过Web服务器请求的任何静态或动态生成的HTML页面的请求,解析该页面,从内容中获取属性和数据,并生成对原始页面进行修改的适当最终页面。这基于著名的GangOfFour Decorator设计模式。
SiteMesh还可以将整个HTML页面作为面板包含在另一个页面中。这类似于服务器端包含,除了会修改HTML文档以在页面内创建可视窗口(使用文档的元数据作为辅助)。使用此功能,可以非常快速有效地构建门户网站类型的网站。这是基于著名的GangOfFour Composite设计模式。
SiteMesh使用具有Servlet,JSP和XML技术的Java 2构建。这使其非常适合与J2EE应用程序一起使用,但是它可以与不基于Java的服务器端Web架构集成,例如CGI(Perl / Python / C / C ++ / etc),PHP,ColdFusion等。
SiteMesh具有很好的可扩展性,其设计易于扩展,可满足自定义需求。