Web.xml
view plaincopy to clipboardprint? <filter> <filter-name>struts-cleanup</filter-name> <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class> </filter> <filter> <filter-name>sitemesh-freemarker</filter-name> <filter-class>org.apache.struts2.sitemesh.FreeMarkerPageFilter</filter-class> <init-param> <param-name>default_encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter>
<filter-mapping> <filter-name>struts-cleanup</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>sitemesh-freemarker</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
<servlet> <servlet-name>JspSupportServlet</servlet-name> <servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <filter> <filter-name>struts-cleanup</filter-name> <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class> </filter> <filter> <filter-name>sitemesh-freemarker</filter-name> <filter-class>org.apache.struts2.sitemesh.FreeMarkerPageFilter</filter-class> <init-param> <param-name>default_encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter>
<filter-mapping> <filter-name>struts-cleanup</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>sitemesh-freemarker</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
<servlet> <servlet-name>JspSupportServlet</servlet-name> <servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet>
本文的重点是如何在JSP中使用FreeMarker标签,有人可能会问:为什么不直接在FreeMarker模版文件中使用JSP标签呢?这是个很好的问题,因为大部分人在使用FreeMarker多半是会用FreeMarker文件格式(.ftl). 但是,试想想如果我们只是想在现有的系统中集成FreeMarker,如果我们要把所有JSP文件改成FTL文件,那么是需要很多时间的,在这种情况下,最好的办法就是在JSP中直接使用FreeMarker标签(一般情况下,我们很有可能在JSP中使用FreeMarker的宏)。那么如何在JSP中使用FreeMarker呢,很简单,我们必须使用JSP的<%@ taglib ... />命令,把FreeMarker的标签库文件(fmtag.tld)导入,本文把 fmtag.tld 放到WEB-INF目录下,下面是 fmtag.tld 的源码: hello.jsp
view plaincopy to clipboardprint? <%@ taglib uri="/WEB-INF/fmtag.tld" prefix="fm" %> <html> <head> <title>Login</title> </head> <body> <h1>Hello World.</h1> <fm:template> <#assign y="Hello World"> ${y} <#assign seq = ["winter", "spring", "summer", "autumn"]> <#list seq as x> ${x_index + 1}. ${x}<#if x_has_next>,</#if> </#list> </fm:template> </body> </html> <%@ taglib uri="/WEB-INF/fmtag.tld" prefix="fm" %> <html> <head> <title>Login</title> </head> <body> <h1>Hello World.</h1> <fm:template> <#assign y="Hello World"> ${y} <#assign seq = ["winter", "spring", "summer", "autumn"]> <#list seq as x> ${x_index + 1}. ${x}<#if x_has_next>,</#if> </#list> </fm:template> </body> </html> 大家注意了FreeMarker的部分必须放在标签<fm:template>与</fm:template>之间,否则JSP不会解析FreeMarker的内容,会把源码输出在页面之中 |
|
来自: 闪宁斯达 > 《freemarker》