第二十七章 使用 CSP 进行基于标签的开发 - CSP 标记语言
CSP 标记语言
CSP
标记语言是一组指令和标记,可用于控制 CSP
编译器生成的类。
当编译 CSP
文档时,结果是一个执行 ObjectScript
或 Basic
代码的 Caché
类。请记住这一点,以帮助开发正确的应用程序逻辑以及执行故障排除。事实上,可能会发现检查 CSP
编译器生成的代码是了解更多关于 CSP
和 CSP
标记语言的有用方法。
跟踪 CSP
服务器上执行的代码(因为它准备对 HTTP
请求的响应)以及要在 HTTP
客户端上执行的代码(例如 HTML
和 JavaScript
)也很重要。
CSP 页面语言
默认情况下,CSP
编译器计算运行时表达式并使用 ObjectScript
生成代码。对于给定的 CSP
文档,可以通过将 PAGE
指令放在文档顶部来将此默认值更改为 Basic
:
<%@ page language="Basic" %> 复制代码
有关示例,请参阅 CSP
示例中包含的 basic.csp
应用程序(单击源以查看源)。
在 CSP
文档中,运行时表达式以及任何服务器端 <script>
标记的内容必须使用页面的默认语言(否则会收到编译时错误)。或者可以用不同的语言定义一个方法,然后从默认语言调用它。
Text
CSP
文档(HTML
或 XML
)中包含的任何不是 CSP
指令或特殊标记的文本都将原封不动地发送到请求页面的 HTTP
客户端。
例如,包含以下内容的 CSP
文档:
<b>Hello!</b> 复制代码
在生成的类中生成以下代码:
Write "<b>Hello!</b>",! 复制代码
反过来,它将以下内容发送到 HTTP
客户端:
<b>Hello!</b> 复制代码
编译时表达式和代码
可以指定在 CSP
页面的编译时(而不是运行时)计算表达式。此类表达式通常用于 CSP
规则定义中,尽管有时它们可能在其他地方使用。
编译时表达式使用 ##(expr)##
指令分隔,其中 expr
是 ObjectScript
表达式。
例如,包含以下内容的 CSP
文档:
This page was compiled on: <b>##($ZDATETIME($H,3))##</b> 复制代码
在生成的类中生成以下代码:
Write "This page was compiled on <b>2000-08-10 10:22:22</b>",! 复制代码
还可以使用 <script>
标记的 runat
属性定义要在页面编译时执行的代码行:
<script language="Cache" runat="compiler"> 复制代码
注意:必须使用 ObjectScript
编写所有编译时表达式和代码。