在基本的介紹之後,我們現在就可以來看看模板標簽系統的語法.
在看具體的標簽之前,我們應該定義什麼作為我們的標簽.為了寫一個標簽,我們使用<@ ... @>標簽結點.左標簽(<@)和右標簽(@>)是默認的標簽.如果必要的話,這些標簽我們能夠在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 = "[email protected]"
...
</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")
在下一個單元我們將看到如何使用模板標簽系統將這些結合在一起來構建頁面.