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,无法构建工厂:com.opensymphony.module.sitemesh.factory.DefaultFactory: