OS(OpenSymphony)的SiteMesh是一个用来在JSP中实现页面布局和装饰(layout and decoration)的框架组件,能够帮助网站开发人员较容易实现页面中动态内容和静态装饰外观的分离。
FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
用sitemesh 的话。你的某个action生成的页面,只要是局部就可以。比如生成一个数据显示的table,外面的html, header, footer这些都交给sitemesh 去装饰了。如果用freemarker的话。你的某个action生成的页面需要关注的是整个html, 只是你把header, footer, sidebar 这些抽取出来了而已。
1、struts-cleanup org.apache.struts2.dispatcher.ActionContextCleanUp sitemesh-freemarker org.apache.struts2.sitemesh.FreeMarkerPageFilter default_encoding UTF-8 struts2 org.apache.struts2.dispatcher.FilterDispatcher struts-cleanup /* sitemesh-freemarker /* struts2 /* JspSupportServlet org.apache.struts2.views.JspSupportServlet 1 struts-cleanup org.apache.struts2.dispatcher.ActionContextCleanUp sitemesh-freemarker org.apache.struts2.sitemesh.FreeMarkerPageFilter default_encoding UTF-8 struts2 org.apache.struts2.dispatcher.FilterDispatcher struts-cleanup /* sitemesh-freemarker /* struts2 /* JspSupportServlet org.apache.struts2.views.JspSupportServlet 1
2、为什么不直接在FreeMarker模版文件中使用JSP标签呢? Login Hello World. ${y} ${x_index + 1}. ${x}, Login Hello World. ${y} ${x_index + 1}. ${x}, 大家注意了FreeMarker的部分必须放在标签与之间,否则JSP不会解析FreeMarker的内容,会把源码输出在页面之中