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 相关文章推荐
一个阿拉伯数字转中文数字的函数
Oct 09 PHP
PHP 操作文件的一些FAQ总结
Feb 12 PHP
限制ckeditor上传图片文件大小的方法
Nov 15 PHP
php输出xml属性的方法
Mar 19 PHP
php编写的抽奖程序中奖概率算法
May 14 PHP
PHP的Yii框架中过滤器相关的使用总结
Mar 29 PHP
Smarty模板变量调节器用法分析
May 23 PHP
PHP基于GD库的图像处理方法小结
Sep 27 PHP
PHP命名空间namespace及use的简单用法分析
Aug 03 PHP
php进程daemon化的正确实现方法
Sep 06 PHP
用php如何解决大文件分片上传问题
Jul 07 PHP
PHP中多字节字符串操作实例详解
Aug 23 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仿QQ验证码的实例分析
2013/07/01 PHP
4种PHP异步执行的常用方式
2015/12/24 PHP
在IE上直接编辑网页内容的js代码(IE地址栏js)
2009/04/27 Javascript
js 全兼容可高亮二级缓冲折叠菜单
2010/06/04 Javascript
cookie的secure属性详解
2015/04/08 Javascript
详解JavaScript数组的操作大全
2015/10/19 Javascript
BootStrap便签页的简单应用
2017/01/06 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
2017/01/17 Javascript
vue无限轮播插件代码实例
2019/05/10 Javascript
详解可以用在VS Code中的正则表达式小技巧
2019/05/14 Javascript
在SSM框架下用laypage和ajax实现分页和数据交互的方法
2019/09/27 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
js实现车辆管理系统
2020/08/26 Javascript
[02:25]DOTA2英雄基础教程 熊战士
2014/01/03 DOTA
[02:51]DOTA2英雄基础教程 风暴之灵
2013/12/23 DOTA
Pyqt实现无边框窗口拖动以及窗口大小改变
2018/04/19 Python
对Python中type打开文件的方式介绍
2018/04/28 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
Python进阶之使用selenium爬取淘宝商品信息功能示例
2019/09/16 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
python encrypt 实现AES加密的实例详解
2020/02/20 Python
Python使用requests xpath 并开启多线程爬取西刺代理ip实例
2020/03/06 Python
django实现将修改好的新模型写入数据库
2020/03/31 Python
浅谈CSS3 动画卡顿解决方案
2019/01/02 HTML / CSS
西班牙英格列斯百货官网:El Corte Inglés
2016/09/25 全球购物
Vilebrequin美国官方网上商店:法国豪华泳装品牌
2020/02/22 全球购物
中软国际Java程序员笔试题
2014/07/19 面试题
舞蹈毕业生的自我评价
2014/03/05 职场文书
公司运动会策划方案
2014/05/25 职场文书
竞选班干部演讲稿100字
2014/08/20 职场文书
国际商务专业毕业生自我鉴定2014
2014/09/27 职场文书
歼十出击观后感
2015/06/11 职场文书
新生儿未入户证明
2015/06/23 职场文书
获奖感言范文
2015/07/31 职场文书
2016年大学生社会实践心得体会
2015/10/09 职场文书
承诺书的内容有哪些,怎么写?
2019/06/21 职场文书