《struts2权威指南》学习笔记之在Freemarker中使用struts2标签

    虽然freemarker自己提供了一些ftl指令,可以对数据模型中的数据进行迭代输出,也提供了一定的条件判断能力,但struts2提供的标签远不止于此,他还提供了一些列的表现标签,例如form,因此还是需要在freemarker模板中使用struts2标签 
    在freemarker模板中使用标签毕竟不同于jsp页面中使用标签,因为freemarker不支持tablib指令导入标签库,但struts2为了在freemarker模板中使用标签库,提供了额外的支持,为了在freemarker模板中使用标签库,可以按如下步骤进行操作

1.将系统所需的标签库定义文件(也就是tld文件)复制到web应用中,对于struts2系统,则需要将struts2-core-2.0.6.jar中的struts-tag.tld拷贝到web应用中

2.在web.zml中启动JSPSupportServlet

< servlet >
  
< servlet-name > JSPSupportServlet </ servlet-name >
  
< servlet-class > org.apache.struts2.views.JspSupportServlet </ servlet-class >
  
< load-on-startup > 1 </ load-on-startup >
</ servlet >

 

3.在freemarker模板中使用assign指令导入标签库,导入标签库代码如下:

 

< #assign  s =JspTaglibs["/WEB-INF/struts-tags.tld"] >

 

4.加入标签库定义后就可以使用struts2标签了(在jsp中没有是<s:form></s:form>)

  

< @s .form action ="list" >
   
< @s .textfield label ="name" />
/ @s.fom

 

后记:我们不能再浏览器中直接访问freemarker模板,那样只会显示模板的源文件,需要在struts.xml进行配置result

 

< result  type ="freemarker" > /WEB-INF/result.ftl </ result >

你可能感兴趣的:(《struts2权威指南》学习笔记之在Freemarker中使用struts2标签)