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加MYSQL服务器
Oct 09 PHP
配置PHP使之能同时支持GIF和JPEG
Oct 09 PHP
php下将XML转换为数组
Jan 01 PHP
php中修改浏览器的User-Agent来伪装你的浏览器和操作系统
Jul 29 PHP
PHP与MongoDB简介|安全|M+PHP应用实例详解
Jun 17 PHP
php ZipArchive压缩函数详解实例
Nov 06 PHP
php从字符串创建函数的方法
Mar 16 PHP
php-redis中的sort排序函数总结
Jul 08 PHP
yii2分页之实现跳转到具体某页的实例代码
Jun 02 PHP
PHP利用Mysql锁解决高并发的方法
Sep 04 PHP
一次项目中Thinkphp绕过禁用函数的实战记录
Nov 17 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的输入输出流
2007/02/14 PHP
php模板之Phpbean的目录结构
2008/01/10 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
2015/03/13 PHP
老生常谈php 正则中的i,m,s,x,e分别表示什么
2017/03/02 PHP
用js怎么把&amp;字符换成&quot;&amp;amp:&quot;
2006/10/19 Javascript
深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法
2007/04/12 Javascript
prototype 学习笔记整理
2009/07/17 Javascript
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
2010/08/12 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2013/08/12 Javascript
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
修复bash漏洞的shell脚本分享
2014/12/31 Javascript
jquery比较简洁的软键盘特效实现方法
2015/03/19 Javascript
jQuery日历插件datepicker用法详解
2016/03/03 Javascript
JQuery学习总结【二】
2016/12/01 Javascript
微信小程序云开发使用方法新手初体验
2019/05/16 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
2019/11/20 Javascript
python运行其他程序的实现方法
2017/07/14 Python
开源软件包和环境管理系统Anaconda的安装使用
2017/09/04 Python
Python 读写文件的操作代码
2018/09/20 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
2019/01/29 Python
解决django后台样式丢失,css资源加载失败的问题
2019/06/11 Python
python文件转为exe文件的方法及用法详解
2019/07/08 Python
Python循环中else,break和continue的用法实例详解
2019/07/11 Python
Python猴子补丁知识点总结
2020/01/05 Python
CSS3模拟IOS滑动开关效果
2016/09/28 HTML / CSS
HTML5 canvas基本绘图之绘制线条
2016/06/27 HTML / CSS
AC Lens:购买隐形眼镜
2017/02/26 全球购物
理肤泉美国官网:La Roche-Posay
2018/01/17 全球购物
加拿大时尚床上用品零售商:QE Home | Quilts Etc
2018/01/22 全球购物
如何防止同一个帐户被多人同时登录
2013/08/01 面试题
电话销售经理岗位职责
2013/12/07 职场文书
科技之星事迹材料
2014/06/02 职场文书
2014年民主评议党员个人总结
2014/09/24 职场文书
离婚协议书怎么写(范本参考)
2014/09/30 职场文书
北京故宫的导游词
2015/01/31 职场文书
浅析JavaScript中的变量提升
2022/06/01 Javascript