1.解压struts2-core-X.X.X.jar文件,把在META-INF文件夹下面的struts-tags.tld文件复制到WEB-INF文件夹下。
将freemark的jar导入到工程中
2.在web.xml文件中配置freemark同时启动JSPSupportServlet.代码如下:
<
servlet
>
< servlet-name > freemarker </ servlet-name >
< servlet-class >
freemarker.ext.servlet.FreemarkerServlet
</ servlet-class >
<!-- 下面的配置freemarke的ftl文件的位置 -->
< init-param >
< param-name > TemplatePath </ param-name >
< param-value > / </ param-value >
</ init-param >
<!-- 是否和服务器(tommcat)一起启动。0为不。1为是 -->
< load-on-startup > 1 </ load-on-startup >
</ servlet >
< servlet-mapping >
< servlet-name > freemarker </ servlet-name >
< url-pattern > *.ftl </ url-pattern >
</ servlet-mapping >
< servlet >
<!-- define a JspSupportServlet Object -->
< servlet-name > JspSupportServlet </ servlet-name >
< servlet-class > org.apache.struts2.views.JspSupportServlet </ servlet-class >
<!-- setting JspSupportServlet auto start -->
< load-on-startup > 1 </ load-on-startup >
</ servlet >
< servlet-name > freemarker </ servlet-name >
< servlet-class >
freemarker.ext.servlet.FreemarkerServlet
</ servlet-class >
<!-- 下面的配置freemarke的ftl文件的位置 -->
< init-param >
< param-name > TemplatePath </ param-name >
< param-value > / </ param-value >
</ init-param >
<!-- 是否和服务器(tommcat)一起启动。0为不。1为是 -->
< load-on-startup > 1 </ load-on-startup >
</ servlet >
< servlet-mapping >
< servlet-name > freemarker </ servlet-name >
< url-pattern > *.ftl </ url-pattern >
</ servlet-mapping >
< servlet >
<!-- define a JspSupportServlet Object -->
< servlet-name > JspSupportServlet </ servlet-name >
< servlet-class > org.apache.struts2.views.JspSupportServlet </ servlet-class >
<!-- setting JspSupportServlet auto start -->
< load-on-startup > 1 </ load-on-startup >
</ servlet >
3.在FreeMarker模板中使用assign指令导入标签库。代码如下
<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld"] /> 注:这里我把struts-tags.tld放在WEB-INF下面
4.现在我们可以在FreeMarker模板中使用标签了
示例代码如下:
<
#assign
s
=JspTaglibs["/WEB-INF/struts-tags.tld"]
/>
< @s .form action ="login" >
< @s .textfield name ="username" label ="username" />
< @s .submit value ="login" />
/ @s.form
< @s .form action ="login" >
< @s .textfield name ="username" label ="username" />
< @s .submit value ="login" />
/ @s.form
<!--
login.ftl代码如下
-->
< #assign s =JspTaglibs["/WEB-INF/struts-tags.tld"] />
< html >
< head >
< title > Login Form </ title >
</ head >
< body >
please input username and password login < br >
< @s .form action ="Login.action" >
< @s .textfield name ="username" label ="username" />
< @s .password name ="password" label ="password" />
< @s .submit value ="submit" />
</ @s.form >
</ body >
</ html >
<!-- welcome.ftl代码如下: -->
< html >
< head >
< title > Success </ title >
</ haed >
< body >
WelCome,${username},you logined! < br >
< a href ="ShowInfo.action" > Show Information </ a >
</ body >
</ html >
<!-- showinfo.ftl代码如下: -->
< html >
< head >
< title > User Information </ title >
< body >
< table border ="1" width ="360" >
< caption > User Information </ caption >
< tr >
< td > username: </ td >
< td > ${username} </ td >
</ tr >
< tr >
< td > sex: </ td >
< td > ${sex} </ td >
</ tr >
< tr >
< td > age: </ td >
< td > ${age} </ td >
</ tr >
</ table >
</ body >
</ html >
< #assign s =JspTaglibs["/WEB-INF/struts-tags.tld"] />
< html >
< head >
< title > Login Form </ title >
</ head >
< body >
please input username and password login < br >
< @s .form action ="Login.action" >
< @s .textfield name ="username" label ="username" />
< @s .password name ="password" label ="password" />
< @s .submit value ="submit" />
</ @s.form >
</ body >
</ html >
<!-- welcome.ftl代码如下: -->
< html >
< head >
< title > Success </ title >
</ haed >
< body >
WelCome,${username},you logined! < br >
< a href ="ShowInfo.action" > Show Information </ a >
</ body >
</ html >
<!-- showinfo.ftl代码如下: -->
< html >
< head >
< title > User Information </ title >
< body >
< table border ="1" width ="360" >
< caption > User Information </ caption >
< tr >
< td > username: </ td >
< td > ${username} </ td >
</ tr >
< tr >
< td > sex: </ td >
< td > ${sex} </ td >
</ tr >
< tr >
< td > age: </ td >
< td > ${age} </ td >
</ tr >
</ table >
</ body >
</ html >