`
harrison2010
  • 浏览: 108017 次
  • 性别: 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
分享到:
评论

相关推荐

    Struts2+Freemark

    在"Struts2+Freemark 做到一个例子"中,你可能会看到以下的实践步骤: 1. 创建Action类并实现相关业务逻辑。 2. 编写FreeMarker模板文件(通常以`.ftl`为扩展名),定义视图布局和数据展示方式。 3. 在Struts2配置...

    freemark-ide-freemarker-ide-0.9.14

    "freemark-ide-freemarker-ide-0.9.14"是针对FreeMarker的Eclipse集成开发环境(IDE)插件,它提升了在Eclipse中编写FreeMarker模板(FTL文件)的体验。 该插件的主要功能包括: 1. **高亮显示FTL标签**:在编辑...

    freemark 自定义标签 总结

    自定义标签可以与Spring MVC、Struts2等框架集成,提供更丰富的功能。 通过上述内容,我们了解了Freemarker自定义标签的基本概念、创建与使用方法,以及如何在实际项目中发挥作用。自定义标签极大地增强了...

    Struts2源码(xwork|asm|commons|freemark|ognl)

    Struts2是一个非常著名的Java Web框架,它基于MVC(Model-View-Controller)设计模式,为开发者提供了构建可维护、高性能的企业级应用程序的工具。Struts2的源码包括了多个关键组件,如xwork、asm、commons、...

    基于iText和flying saucer结合freemark生成pdf 范例

    2. 使用前需要将C:/Windows/Fonts/ARIALUNI.TTF 复制到doc-render/src/test/resources/config/fonts目录中 3. 运行Junit测试类 TestPdfGenerator.testGenerate()即可生成,pdf生成路径见日志. 4. 如果没有maven环境...

    Freemark标签

    主要介绍了freemark标签的相关基础知识,基本上了解Freemark标签的应用

    freemarker与struts2详细配置

    - **标签库**:结合Struts2的标签库,如`s:form`、`s:textfield`等,使模板更加简洁。 - **模板继承**:通过`&lt;#include&gt;`或`&lt;@import&gt;`指令,实现模板的复用和继承。 - **宏定义**:使用`&lt;#macro&gt;`定义可重用的代码...

    freemark标签使用

    [@cms.Includename='参数-1'solution='参数-2'/] ``` 其中: - `name` 参数用于指定要包含的模板文件名。 - `solution` 参数则定义了显示样式的名称,默认为`default`。 **使用示例:** ```html [@cms.Includename=...

    freemark简单使用源码

    在本教程中,我们将深入探讨FreeMarker的简单使用和源码分析。 首先,FreeMarker的工作原理是基于模板和数据模型。模板是一段包含固定文本和占位符(称为变量或指令)的文本文件,这些占位符会被数据模型中的实际值...

    Freemark模板使用

    2. 创建自定义标签类,处理逻辑并设置数据模型。 3. 编写Freemark模板文件,使用变量和控制结构。 4. 定义和注册自定义标签库(可选)。 5. 在JSP页面中使用自定义标签。 通过以上步骤,你可以开始创建动态、数据...

    318623946-pdf_freemark_springboot-master.zip

    标题中的“318623946-pdf_freemark_springboot-master.zip”表明这是一个与SpringBoot相关的项目,特别地,它包含了PDF打印功能。这个项目可能是一个开源或者个人开发的实例,其中“318623946”可能是项目ID或者是...

    freemark自定义标签

    NULL 博文链接:https://carolli.iteye.com/blog/1387704

    struts1.x整合freemarker

    Struts1.x是一款经典的MVC(Model-View-Controller)框架,它在Java Web开发中有着广泛的应用。而Freemarker则是一种强大的、基于模板的动态语言,常用于生成HTML或其他类型的文本。将Struts1.x与Freemarker整合,...

    Freemark指南

    本指南旨在全面介绍Freemark的基本概念及其使用方法,帮助读者更好地理解和运用这一工具。 #### 二、核心概念 Freemark的核心概念主要包括三个:**序列(Sequence)**、**键值对集合(Hash)**以及**命名空间...

    freemarker+struts完整代码实例

    在本案例中,“freemarker+struts完整代码实例”提供了一个学习这两种技术结合使用的实际项目。初学者可以通过此实例了解如何将FreeMarker与Struts结合,实现动态页面的生成和控制层的处理。 首先,让我们详细了解...

    struts2精通

    - **编写JSP页面**:使用Struts2提供的标签库进行页面渲染,这些标签库可以方便地操作模型数据,如使用OGNL表达式。 #### 四、FilterDispatcher详解 - **FilterDispatcher**:是Struts2框架的核心组件之一,负责...

    Java使用freemark生成word

    使用`.ftl`扩展名创建一个FreeMarker模板文件,该文件包含静态文本和占位符,如`${user.name}`。这些占位符将在运行时被数据模型中的值替换。模板可以包含复杂的逻辑,如条件语句和循环。 例如,一个简单的Word...

    网络文件管理系统实例编程(struts2+hibernate+freemark)

    网络文件管理系统是一个基于Java平台的企业级应用,它利用Struts2、Hibernate和FreeMarker三大技术框架,实现对网络上文件的高效管理和访问。本实例编程着重讲解如何将这三种技术结合,构建一个实用且功能丰富的文件...

    freemark学习笔记

    - 访问列表:如果`u`是一个列表,可以使用索引来访问元素,如`${u[0]}`获取列表的第一个元素。 FreeMarker还支持深入访问嵌套对象和数组,以及处理条件语句、循环结构、自定义函数等,提供了丰富的语法来满足复杂的...

    freemark标签运用

    ### Freemark标签运用知识点 #### 一、Freemarker简介 Freemarker 是一款功能强大的模板引擎,由 Apache 软件基金会所维护的一个开放源码项目。它主要用于生成动态 HTML 页面,但也支持生成 XML、Java 源代码等...

Global site tag (gtag.js) - Google Analytics