我们用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的源码中找到答案。
分享到:
相关推荐
Struts2+Freemark 做到一个例子 (*因为文件太大 所以把你们的struts2包删除了 请自己导入 谢谢,数据库用的是mysql*)
不含struts2-core-2.2.3.1的源码,比较大单独上传。Struts2的源码基本上都在了
FreeMarker的Eclipse插件,可以高亮显示FTL标签,提示语法错误,以及智能提示!,资源是从这里下载的但是readme写的不详细。我修改了下。拥有myeclipse中
NULL 博文链接:https://carolli.iteye.com/blog/1387747
主要介绍了freemark标签的相关基础知识,基本上了解Freemark标签的应用
freemark简单使用源码,简单介绍freemark的操作方法qqqqqqqqq
freemark标签使用的一些说明.希望对大家有点用。
Java使用freemark生成word,http://blog.csdn.net/op635915376/article/details/51644527源码
Struts 2.0提供一个Sitemesh插件,允许在Sitemesh模板中使用Struts标记。 要使用Sitemesh需要包含Freemark,Sitemesh和Sitemesh插件库文件。 配置过滤器 如果需要使用Freemark模板文件作为装饰器文件,需要在web....
NULL 博文链接:https://carolli.iteye.com/blog/1387704
freemarker与struts2详细配置.
freemark学习笔记:在阅读freemark官方文档的过程中记录下的一些笔记。包括自己对freemark的理解以及实践中的经验
第20章 网络文件管理系统实例编程(struts2+hibernate+freemark) 学习J2EE的绝好质料.
整合S2SH+Freemarker+oscache,后台用Spring管理各个bean,Hibernate做数据库持久化,viewer用Freemarker。整合中对Struts2,Hibernate,Spring都采用Annotation进行注解类。
freemark开发指南详解freemark开发指南详解freemark开发指南详解freemark开发指南详解freemark开发指南详解
一些很不错的freemark资料及eclipse的freemark插件
freemark比较实用的手册,中文版 适合快速学习
springboot项目,实现pdf打印功能,框架为springboot,数据库使用的mysql,前端使用freemarker模板
Freemark+struts2 Freemark Java项目Freemark生成静态页面及语法
适用于初学者快速掌握Freemark的使用(内附代码)。