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 相关文章推荐
PHP JSON出错:Cannot use object of type stdClass as array解决方法
Aug 16 PHP
php格式化电话号码的方法
Apr 24 PHP
PHP+jQuery翻板抽奖功能实现
Oct 19 PHP
[原创]CI(CodeIgniter)简单统计访问人数实现方法
Jan 19 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
May 04 PHP
Yii2 assets清除缓存的方法
May 16 PHP
php自定义时间转换函数示例
Dec 07 PHP
php自定义截取中文字符串-utf8版
Feb 27 PHP
PHP面向对象之工作单元(实例讲解)
Jun 26 PHP
Laravel中encrypt和decrypt的实现方法
Sep 24 PHP
PHP输出Excel PHPExcel的方法
Jul 26 PHP
PHP asXML()函数讲解
Feb 03 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注入点构造代码
2008/06/14 PHP
利用Ffmpeg获得flv视频缩略图和视频时间的代码
2011/09/15 PHP
php中smarty区域循环的方法
2015/06/11 PHP
laravel框架如何设置公共头和公共尾
2019/10/22 PHP
Laravel5.1 框架响应基本用法实例分析
2020/01/04 PHP
纯Javascript实现Windows 8 Metro风格实现
2013/10/15 Javascript
javascript实用方法总结
2015/02/06 Javascript
js实现点击链接后延迟3秒再跳转的方法
2015/06/05 Javascript
在WordPress中加入Google搜索功能的简单步骤讲解
2016/01/04 Javascript
JS及PHP代码编写八大排序算法
2016/07/12 Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
2017/08/26 Javascript
Vue.js 图标选择组件实践详解
2018/12/03 Javascript
JavaScript RegExp 对象用法详解
2019/09/24 Javascript
Vue vm.$attrs使用场景详解
2020/03/08 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
2020/07/14 Javascript
[01:54]TI4西雅图DOTA2选手欢迎晚宴 现场报道
2014/07/08 DOTA
python定时检查启动某个exe程序适合检测exe是否挂了
2013/01/21 Python
Python列表list数组array用法实例解析
2014/10/28 Python
python实现爬取千万淘宝商品的方法
2015/06/30 Python
python中正则表达式 re.findall 用法
2018/10/23 Python
在双python下设置python3为默认的方法
2018/10/31 Python
python实现dijkstra最短路由算法
2019/01/17 Python
python tkinter canvas使用实例
2019/11/04 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
使用CSS3编写类似iOS中的复选框及带开关的按钮
2016/04/11 HTML / CSS
简单的HTML5初步入门教程
2015/09/29 HTML / CSS
玩具反斗城葡萄牙官方商城:Toys"R"Us葡萄牙
2016/10/21 全球购物
自考生自我鉴定范文
2013/10/01 职场文书
工业学校毕业生自荐信范文
2014/01/03 职场文书
什么样的创业计划书可行性高?
2014/02/01 职场文书
低碳环保倡议书
2014/04/14 职场文书
美丽心灵观后感
2015/06/01 职场文书
心术观后感
2015/06/11 职场文书
2015大学党建带团建工作总结
2015/07/23 职场文书
环保建议书作文500字
2015/09/14 职场文书
mybatis3中@SelectProvider传递参数方式
2021/08/04 Java/Android