`
harrison2010
  • 浏览: 105427 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用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的源码中找到答案。

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics