`
wtnhwbb
  • 浏览: 166105 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts 2.0 UI标记/模板/主题

阅读更多

概述

        Struts2.0提供一些UI标记,封装了错误显示,提示等逻辑(用起来还不错),这些UI标记是基于模板技术实现的,缺省是基于Freemark模板 技术,如果有能力可以实现自己的模板引擎,很少有这种需求。

      该模板引擎会将标记与对应的模板文件联系起来,然后解析为HTML片断返回。这些模板文件会封装相应的逻辑。

      框架缺省提供基于xhtml,xhmtl-css,ajax等几套模板,一套模板就称为一个主题(theme)。     

模板路径

        全局模板路径由struts.properties文件的action.ui.templateDir 属性决定,也可以针对某个具体的标记改变模板加载位置。

        模板文件可以保存在类路径,也可以保存在应用上下文路径,模板引擎会首先查找应用上下文路径。缺省的模板文件路径为template/{theme} /*.ftl,其中{theme}表示主题名称,比如xhtml。

        每个UI标记都有theme属性,可以用来选择采用的theme,缺省使用的主题由struts.properties文件的application.ui.theme 属性决定。

扩展模板

        有时候框架生成的UI可能不能满足要求,这时候可以进行扩展。如果要基于框架提供的主题进行扩展,通常的作法是将类路径下的主题文件拷贝到应用程序上下 文,再改写相应的部分。因为引擎会首先查找应用程序上下文。

包装已有主题

        xthml主题提供几个很好的例子,simple主题提供基本的控件,而许多xhtml标记只是在此基础上添加一个头部或尾部,示例如下:

xml 代码
  1. <#include "/${parameters.templateDir}/xhtml/controlheader.ftl" />  
  2. <#include "/${parameters.templateDir}/simple/xxx.ftl" />  
  3. <#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" />  
扩展已有主题

        包含一个主题的所有模板文件的目录下可以包含一个theme.properties文件,可以添加一个parent入口指定需要扩展的主题,然后只要提供 需要改写的模板文件即可,比如ajax主题就使用这种技术扩展xhtml主题,示例如下:

xml 代码
  1. parent = xhtml 
分享到:
评论

相关推荐

    传智播客struts2全程学习笔记

    - `freemarker-2.3.x.jar`:Struts2的UI标签的模板使用FreeMarker编写。 - `commons-logging-1.x.x.jar`:ASF出品的日志包,Struts2框架使用这个日志包来支持Log4J和JDK1.4+的日志记录。 - `commons-fileupload-...

    Struts2的结构和编写过程笔记

    - `freemarker-2.3.x.jar`: Struts2的所有UI标记的模板引擎。 - `commons-logging-1.0.x.jar`: 日志接口封装。 - `commons-fileupload-1.2.1.jar`: 文件上传支持。 4. **配置过滤器**:编辑`/Webroot/WEB-INF/web...

    Matt Raible对各种Java Web层比较

    他不仅发起了AppFuse这一开源框架,并且撰写了多本技术书籍,如《Professional JSP 2.0》与《Spring Live》等。此外,他还经常受邀在各大技术会议中进行主题演讲。本文将详细介绍他在JA-SIG夏季会议上关于Java Web层...

    java开源包1

    AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,...

    java开源包11

    AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,...

    java开源包2

    AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,...

    java开源包3

    AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,...

    java开源包6

    AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,...

    java开源包5

    AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,...

    java开源包10

    AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,...

    java开源包4

    AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,...

    java开源包8

    AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,...

    java开源包7

    AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,...

    java开源包9

    AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,...

    java开源包101

    AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,...

    Java资源包01

    AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,...

    JAVA上百实例源码以及开源项目源代码

    简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对IT的憧憬、向往!...

Global site tag (gtag.js) - Google Analytics