PHP.MVC的模板标签系统(三)


Posted in PHP onSeptember 05, 2006

PHP.MVC标签语法

    在基本的介绍之后,我们现在就可以来看看模板标签系统的语法.
    在看具体的标签之前,我们应该定义什么作为我们的标签.为了写一个标签,我们使用<@ ... @>标签结点.左标签(<@)和右标签(@>)是默认的标签.如果必要的话,这些标签我们能够在phpmvc-config.xml中重新定义.
    模板标签系统现在支持以下3种标签:包含指令,声明和表达式.我们现在来看看这些指令.

包含指令

    包含指令能让我们将内容分隔为许多模块,比如:页眉,页脚或者内容.包含的页面可以是HTML,或者其他标签模板页.据个例子,下面的包含指令能用来包含一个页眉:
    <@ include 'pageHeader.ssp' @>
    一个包含指令在模板上下文种的例子:
<html>
<head>
...
</head>
<body>
<center>
<table class='pageLayoutTable'>
   <tr>
      <td class='pageHeader'>
         <@ include 'pageHeader.ssp' @>
      </td>
   </tr>
   <!-- PAGE CONTENTS -->
   ...
   <!-- PAGE FOOTER -->
   ...
</table>
...
</center>
</body>
</html>
    在这里例子种pageHeader.ssp页眉文件内容将被插入到主页面上当这个页面被发送到用户浏览器上.这个页眉文件包含了一个表达式:
<!-- Page Header -->
 <span>
    <@ =viewConfig.getAppTitle @>
 </span>
    这个表达式将被编译并且将在运行时输出为:
<!-- Page Header -->
 <span>
    Flash Jacks' Sleek Tab Site
 </span>

声明

    声明允许我们在模板种声明一个页面级别的变量,或者甚至其他包含页面.一个声明看起来像以下代码:
    <@ salesAreaID = "Central District" @>
    我们能够在模板文件中使用声明:
<@ saleMonth   = data.getValueBean('SALE_MONTH') @>
<@ saleTitle   = data.getValueBean('SALE_TITLE') @>
<@ dealHeading = data.getValueBean('DEAL_HEADING') @>
<@ salesAreaID = "Central District" @>

<html>
<head>
   <link rel='stylesheet' type='text/CSS' href="./style/pageStyles.css"/>
   <title>
      ...
   </title>
</head>
<body>
...
</body>
</html>
    在这里例子中,我们声明了一些页变量.前3个变量已经在我们创建的Action类中的ActionObject中被赋值:data.getValueBean('SALE_MONTH').第4个变量被赋了一个字符串值:salesAreaID = "Central District".
    声明的变量现在可以在页面中使用了:
<!-- start_page_contents_include -->
...
<!-- Content section heading -->
<h4><@=dealHeading @> <@=saleMonth @></h4>

<center>
Clearance deals
<table class='productsTable'>
   ...
</table>
</center>

<center>
Todays specials
<table class='productsTable'>
   ...
</table>
</center>
...
<!-- end_page_contents_include -->
    这些页变量将被输出为:
<!-- Content section heading -->
<h4>Jack's Super Deals for : May 2010</h4>
...
...

表达式

    表达式标签允许我们在模板页中执行表达式.表达式的结果将被包含进模板页.以下表达式将被用来显示一个简单的字符串(salesAreaID),也可以找回框架配置类的属性:
<@ =salesAreaID @>
<@ =viewConfig.contactInfo @>
    为了使用这些表达式,我们要在之前声明过:
<@ salesAreaID = "Central District" @>
    或者在ViewResourcesConfig对象(viewConfig)的属性在view-resources结点中声明过:
<view-resources
    appTitle    = "Flash Jacks' Sleek Tab Site"
    contactInfo = "flash.jack@jackshost.com"
    ...
  </view-resources>
    当使用表达式中的对象时,我们能够写一个对象-方法(object-method)声明在标准的PHP符号或者点风格的符号:
The PhpMVC_Tags Object-Method Notation 
PHP Style  sales = data->getSales 
Dot Style  sales = data.getSales 
With Method Params  staff = data.getValueBean("STAFF") 
Retrieve Data Array  products = data->getValueBean("PRODUCTS_ARRAY") 
    在下一个单元我们将看到如何使用模板标签系统将这些结合在一起来构建页面.

PHP 相关文章推荐
基于mysql的bbs设计(一)
Oct 09 PHP
PHP注释实例技巧
Oct 03 PHP
php防盗链的常用方法小结
Jul 02 PHP
PHP多文件上传类实例
Mar 07 PHP
php对象和数组相互转换的方法
May 12 PHP
PHP接收json 并将接收数据插入数据库的实现代码
Dec 01 PHP
php仿微信红包分配算法的实现方法
May 13 PHP
php批量转换文件夹下所有文件编码的函数类
Aug 06 PHP
PHP常用日期加减计算方法实例小结
Jul 31 PHP
PHP date()格式MySQL中插入datetime方法
Jan 29 PHP
详解PHP中curl_multi并发的实现
Jun 08 PHP
PHP中echo与print区别点整理
Mar 09 PHP
PHP.MVC的模板标签系统(二)
Sep 05 #PHP
PHP.MVC的模板标签系统(一)
Sep 05 #PHP
apache+mysql+php+ssl服务器之完全安装攻略
Sep 05 #PHP
Windows下PHP5和Apache的安装与配置
Sep 05 #PHP
玩转图像函数库―常见图形操作
Sep 03 #PHP
生成静态页面的PHP类
Jul 15 #PHP
删除无限级目录与文件代码共享
Jul 12 #PHP
You might like
用PHP实现 上一篇、下一篇的代码
2012/09/29 PHP
php中的抽象方法和抽象类
2017/02/14 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
PhpStorm本地断点调试的方法步骤
2018/05/21 PHP
PHP基于curl模拟post提交json数据示例
2018/06/22 PHP
PHP中rename()函数的妙用讲解
2019/02/28 PHP
免费空间广告万能消除代码
2006/09/04 Javascript
让textarea自动调整大小的js代码
2011/04/12 Javascript
基于JQuery的一句话搞定手风琴菜单
2012/09/14 Javascript
javascript通过元素id和name直接取得元素的方法
2015/04/28 Javascript
javascript中使用new与不使用实例化对象的区别
2015/06/22 Javascript
jQuery蓝色风格滑动导航栏代码分享
2015/08/19 Javascript
Jquery获取第一个子元素简单实例
2016/06/02 Javascript
JS查找字符串中出现次数最多的字符
2016/09/05 Javascript
JS 判断某变量是否为某数组中的一个值的3种方法(总结)
2017/07/10 Javascript
nodejs判断文件、文件夹是否存在及删除的方法
2017/11/10 NodeJs
vue2.0 中使用transition实现动画效果使用心得
2018/08/13 Javascript
详解Vue结合后台的列表增删改案例
2018/08/21 Javascript
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
jQuery实现的中英文切换功能示例
2019/01/11 jQuery
用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试
2014/07/14 Python
基于python list对象中嵌套元组使用sort时的排序方法
2018/04/18 Python
对python 中re.sub,replace(),strip()的区别详解
2019/07/22 Python
Python @property使用方法解析
2019/09/17 Python
python中什么是面向对象
2020/06/11 Python
Keras loss函数剖析
2020/07/06 Python
Python环境配置实现pip加速过程解析
2020/11/27 Python
python 如何上传包到pypi
2020/12/24 Python
Python .py生成.pyd文件并打包.exe 的注意事项说明
2021/03/04 Python
Python 调用C++封装的进一步探索交流
2021/03/04 Python
优秀实习自我鉴定
2013/12/04 职场文书
硕士研究生个人求职信
2013/12/04 职场文书
《囚绿记》教学反思
2014/03/01 职场文书
商业房地产广告语
2014/03/13 职场文书
解除劳动合同协议书范本
2014/09/13 职场文书
中层领导干部群众路线对照检查材料思想汇报
2014/10/02 职场文书