PHPMVC之模板标签系统(四

  在这个单元中我们将看到如何使用模板标签系统构造一个标准的模板页面。这个例子我们使用了一个简单的HTML页面布局,请看下图:

  这个页面有多个标准单元组成,就像页面设计者和开发者熟悉的那样.这个页面的主体由3个包含的单元组成:页眉,页内容主体和页脚.我们现在就看看这些单元并且了解如何使用模板标签系统来实现.

  第一个有趣的条目是页顶部的页声明(1).我们在页面开始声明了这些变量,因此这些变量将能在下面的页面和像页眉那样的包含页所使用.

  页眉是下一个有趣的条目(3).在这里我们使用包含指令来插入页眉模板文件到页主体中.我们将在下一个子单元中来看一看页眉.

  我们仅仅使用了页面直接去读取页眉,不论页的组件存储在哪里.这是一个好机会来介绍模板标签系统的目录设置.默认情况下,模板目录布局如下所示(注意这些路径相对于我们的应用程序):

  如果需要的话我们可以在配置文件的view-resources结点来重新定义他们,就像这样:

  这是另外一个包含指令被用来插入模板文件(4)到主体中.注意包含的文件位于模板目录的sales子目录中:

  在这个例子中页眉模板文件(pageHeader.ssp)只是一个简单的单元,就像这样:

  当主体页面(包括包含的页面)被编译的时候,页眉的表达式被转换成下面这样:

  被编译的页面被存储在编译模板目录中,就像上面所说的,默认的编译模板目录是:

  在页面顶部所显示的额外声明(1)能让我们声明页变量以便下面能够使用.在内容被处理之后,这些声明将在编译后像下面这样显示:

  现在我们使用两个表达式(2)来显示内容单元的标题.注意我们声明这些变量是全局变量在主页面的顶部.处理完后,表达式将转换这些代码,就像这样:

  现在我们能显示一些实际的数据(3).在这个页内容主体单元中我们访问一些在PHPMVCTabAction类的ActionObject中的产品条目数据.一个简化版的PHPMVCTabAction类在下面展示:

  在上面的代码中,我们能看到$item1被创建并被保存成ActionObject的valueBeans条目.Bean数据条目现在能在模板页面中被重新获得:

  页脚单元和上面讨论过的页眉单元的处理相类似.页脚模板文件(tpl/pageFooter.ssp)就像这样:

相关阅读