sitemesh vs jsp-config (<include-prelude>)

Posted

技术标签:

【中文标题】sitemesh vs jsp-config (<include-prelude>)【英文标题】: 【发布时间】:2010-12-19 22:10:41 【问题描述】:

请帮忙澄清一下:

在 web.xml 我有以下内容

<jsp-config>
    <jsp-property-group>
      <url-pattern>*.jsp</url-pattern>
      <el-ignored>false</el-ignored>
      <page-encoding>utf-8</page-encoding>
      <include-prelude>/jstlTaglibs.jspf</include-prelude>
    </jsp-property-group>
</jsp-config>

在 decorators.xml 中我也有

<decorator name="footer" page="footer.jsp">
    <pattern>*.action</pattern>
</decorator>

通过 sitemesh.xml 使用。上面写着的footer.jsp

...
<decorator:body />
<@include .. "footer.jsp"/> 

所以我收集到的是,上面的两个代码在某种意义上都注入了一些 jspf。请帮助突出这两种方法的差异和好处。还有哪一种在整个行业中使用得更多?

【问题讨论】:

【参考方案1】:

jsp include-prelude 用于在每个jsp页面的开头注入一个jsp的sn-p。这可以在纯 jsp 环境中使用,以避免在每个页面上编写相同的代码。注入的代码以jsp方式执行。

另一方面,Sitemesh 不依赖于 jsp 环境,而是对 html 响应进行更静态的格式化。也就是说,sitemesh 不知道 html 代码来自哪里,它可能是静态 html 页面、php 或 JSP 或其他。它只是获取 HTML 代码并根据您的模板对其进行格式化,然后将其发送出去。

因此这两种技术可以一起使用,因为它们处理响应过程的不同方面。

【讨论】:

以上是关于sitemesh vs jsp-config (<include-prelude>)的主要内容,如果未能解决你的问题,请参考以下文章

为啥要使用模板引擎? jsp 包括和 jstl vs tile、freemarker、velocity、sitemesh

Java web中的web-xml中标签定义之jsp-config

如何指定我希望我的 jsp-config 指令应用于我们应用程序中提供的所有 JSP 页面?

SiteMesh入门(1-1)SiteMesh是什么?

Sitemesh,无法构建工厂:com.opensymphony.module.sitemesh.factory.DefaultFactory:

sitemesh 使用整理(入门)