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 

你可能感兴趣的:(UI,Ajax,框架,XHTML,struts)