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 相关文章推荐
利用static实现表格的颜色隔行显示的代码
Sep 02 PHP
实用函数8
Nov 08 PHP
PHP中冒号、endif、endwhile、endfor使用介绍
Apr 28 PHP
用PHP读取和编写XML DOM的实现代码
Feb 03 PHP
通过5个php实例细致说明传值与传引用的区别
Aug 08 PHP
简单谈谈php中ob_flush和flush的区别
Nov 27 PHP
PHP中基本HTTP认证技巧分析
Mar 16 PHP
php去除二维数组的重复项方法
Nov 03 PHP
Smarty模板变量调节器用法分析
May 23 PHP
PHP实现的自定义数组排序函数与排序类示例
Nov 18 PHP
php实现网页端验证码功能
Jul 11 PHP
phpstudy的php版本自由修改的方法
Oct 18 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入门速成(2)
2006/10/09 PHP
从零开始学YII2框架(三)扩展插件yii2-gird
2014/08/20 PHP
php使用cookie显示用户上次访问网站日期的方法
2015/01/26 PHP
Code:loadScript( )加载js的功能函数
2007/02/02 Javascript
读jQuery之二(两种扩展)
2011/06/11 Javascript
JQuery+DIV自定义滚动条样式的具体实现
2013/06/25 Javascript
JavaScript解析json格式数据简单示例
2014/12/09 Javascript
js实现异步循环实现代码
2016/02/16 Javascript
易被忽视的js事件问题总结
2016/05/14 Javascript
动态加载js、css的实例代码
2016/05/26 Javascript
原生js三级联动的简单实现代码
2016/06/07 Javascript
jQuery Form插件使用详解_动力节点Java学院整理
2017/07/17 jQuery
React Native时间转换格式工具类分享
2017/10/24 Javascript
ReactNative中使用Redux架构总结
2017/12/15 Javascript
详解在React中跨组件分发状态的三种方法
2018/08/09 Javascript
angular 未登录状态拦截路由跳转的方法
2018/10/09 Javascript
在element-ui的el-tree组件中用render函数生成el-button的实例代码
2018/11/05 Javascript
Vue项目总结之webpack常规打包优化方案
2019/06/06 Javascript
LayUi数据表格自定义赋值方式
2019/10/26 Javascript
JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】
2020/05/01 Javascript
python 控制Asterisk AMI接口外呼电话的例子
2019/08/08 Python
python3 实现函数写文件路径的正确方法
2019/11/27 Python
vscode+PyQt5安装详解步骤
2020/08/12 Python
PyChon中关于Jekins的详细安装(推荐)
2020/12/28 Python
施华洛世奇波兰官网:SWAROVSKI波兰
2019/06/18 全球购物
Vision Direct比利时:在线订购隐形眼镜
2019/08/27 全球购物
客户表扬信范文
2014/01/10 职场文书
培训科主任岗位职责
2014/08/08 职场文书
2015年公司新年寄语
2014/12/08 职场文书
行政二审代理词
2015/05/25 职场文书
实习证明格式范文
2015/06/16 职场文书
2016学校先进集体事迹材料
2016/02/29 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书
详解缓存穿透击穿雪崩解决方案
2021/05/28 Redis
浅谈MySQL函数
2021/10/05 MySQL
世界十大狙击步枪排行榜
2022/03/20 杂记