使用freemark写标签(一)--------从Struts2源码谈起

    我们用Struts2中好像并没有见到使用freemark的踪迹,后台的java代码我们用到的action是可以继承actionsupport的。Struts.xml配置更是看不到freekmark的影子,唯独在struts.properties中偶尔见过struts.ui.theme=xhtml的配置。


      那么就让我们从struts.peroerties开始去寻根究底吧。
      struts.ui.theme=xhtml的意思是什么那?就是在遇到ftl的时候默认的会去用xhtml包下ftl,但是并没有发现我们用到ftl的地方,从头到现在我们看了看,好像少了前台的显示问题,也就是jsp的页面的问题。因为在jsp页面里面还用到了struts2的标签技术,难道标签技术的背后是用到了我们想了解的ftl吗?
      让我们那一个<s:form>标签来研究吧!
      找到struts2的tld文件
      找到tag的name为form的标签,查看所有的attribute都没有发现可疑情况,唯独要去找的就是tag-class了
org.apache.struts2.views.jsp.ui.FormTag,继续
       根据FormTag我们两条路径去找
       1.它的父类 AbstractClosingTag 一直向上追溯 途中发现过theme的属性,但是始终没有找到对应的form.ftl或form-colse.ftl。静下来一想,formtag有的别的tag不一定有,那么肯定不能从他的父类中找到
       2.柳暗花明FormTag中的getBean方法,发现了form类,找到了OPEN_TEMPLATE和TEMPLATE,终于明白了ftl在标签中的作用。

        但这仅仅是开始刚才在追溯AbstractClosingTag 的时候一直追溯到javax的类,最终继承的还是javax.servlet.jsp.tagext.TagSupport类,因此熟练的j2ee标签知识还是必备的。

     注:以上所说均可在struts的源码中找到答案。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值