第二十九章 使用 CSP 进行基于标签的开发 - 服务器端方法

简介: 第二十九章 使用 CSP 进行基于标签的开发 - 服务器端方法

第二十九章 使用 CSP 进行基于标签的开发 - 服务器端方法

运行时代码 ObjectScript 单行

可以使用以下语法运行单行 ObjectScript。这仅适用于单行。行不能换行。

#[ set x = a + b write x ]#
复制代码

服务器端方法

CSP 文档中,可以定义属于为文档生成的类的方法。这是使用带有 <script> 标记的参数来完成的。

可以指定方法的名称以及它的参数列表和返回类型。可以指定用于实现该方法的语言;此语言不需要匹配 CSP 文档的默认语言。

例如,以下定义了一个名为 MakeList 的方法,该方法创建一个包含计数项的有序列表:

<script language="Cache" method="MakeList"
arguments="count:%Integer" returntype="%String">
   New i
   Write "<ol>",!
   For i = 1:1:count {
      Write "<li> Item",i,!
   }
   Write "</ol>",!
   Quit ""
</script>
复制代码

然后,可以从 CSP 文档中的其他位置调用此方法:

<hr>
#(..MakeList(100))#
复制代码

还可以使用继承(使用<csp:class> 标记)将先前定义的方法继承到页面类或调用另一个类的类方法:

<hr>
#(##class(MyApp.Utilities).MakeList(100))#
复制代码

SQL

可以使用 SQL 使用以下 <script> 标记在 CSP 页面内的对象中定义 Caché %ResultSet

以下示例在名为 query 的对象中创建动态 SQL %ResultSet 的实例,准备指定的 SQL 查询并执行它(准备好对其进行迭代)。

<script language="SQL" name="query">
SELECT Name FROM MyApp.Employee ORDER BY Name
</script>
复制代码

通常,在由 SQL 脚本标记创建的对象中使用 %ResultSet 并结合  <csp:while>标记(请参阅 csp:while 标记)来显示查询结果。

当页面完成执行时,SQL <script>  标记在对象中关闭实例化的 %ResultSet

可以使用 ? 指定 SQL 查询的参数。 SQL 文本中的字符。可以使用 SQL <script>标记的 P1、P2、...Pn 属性为参数提供值(其中 n 是参数的数量)。

这是使用 SQL <script>  标签显示当前用户购买的示例。 (假设当前用户的用户 ID 先前已存储在 %session 对象中):

<script language=SQL name=query P1=#(%session.Data("UserID"))#>
SELECT DateOfPurchase,ItemName,Price
FROM MyApp.Purchases
WHERE UserID = ?
ORDER BY DateOfPurchase
</script>
<hr>
Items purchased by: <b>#(%session.Data("UserID"))#</b>
<br>
<table>
<tr><th>Date</th><th>Item</th><th>Price</th></tr>
<csp:while condition="query.Next()">
<tr>
<td>#(..EscapeHTML(query.GetData(1)))#</td>
<td>#(..EscapeHTML(query.GetData(2)))#</td>
<td>#(..EscapeHTML(query.GetData(3)))#</td>
</tr>
</csp:while>
</table>
复制代码

使用<csp:query> 标记,可以使用定义为 Caché 类的一部分的查询在对象中创建 %ResultSet

<csp:query NAME="query" CLASSNAME="Sample.Person" QUERYNAME="ByName">
复制代码

可以像使用 SQL <script> 标记一样在对象中使用生成的 %ResultSet

控制生成的类

使用 <csp:class>标记,可以对 CSP 编译器生成的类施加一些控制。此控件包括为类选择超类并在类参数中定义许多 %CSP.Page的值。

例如,假设除了从类中的常规 %CSP.Page 继承之外,还希望生成的类也从另一个类继承。 SUPER 属性采用逗号分隔的类列表,并将它们用作生成类的超类。

<csp:class SUPER="%CSP.Page,MyApp.Utilities">
复制代码

下面是一个重新定义类参数值的示例: 要将类参数 PRIVATE 的值重新定义为 1(将页面定义为私有),请使用:

<csp:class PRIVATE=1>


相关文章
|
19小时前
|
安全 网络安全 API
163邮箱IMAP服务器设置方法
```markdown 使用IMAP协议同步163邮箱:登录邮箱→设置→账户→IMAP/SMTP→开启服务→配置服务器(imap.163.com:993, SSL/TLS)→设置用户名和密码→保存并在邮件客户端添加账号。确保多设备邮件同步,定期更新设置。[≤240字符] ```
|
19小时前
|
存储 资源调度 应用服务中间件
浅谈本地开发好的 Web 应用部署到 ABAP 应用服务器上的几种方式
浅谈本地开发好的 Web 应用部署到 ABAP 应用服务器上的几种方式
33 0
|
19小时前
|
前端开发 数据处理 API
后端开发:构建稳健与高效的服务器逻辑
后端开发:构建稳健与高效的服务器逻辑
|
19小时前
|
存储 缓存 负载均衡
优化服务器响应时间的方法如下
【4月更文挑战第25天】
31 5
|
19小时前
|
缓存 监控 安全
有哪些搭建代理服务器的好方法?--代理IP小课堂
今天我们就来说一说,要如何搭建代理服务器,以此来帮助你快速入门代理服务器的搭建和使用。
|
19小时前
|
弹性计算 Ubuntu Windows
阿里云自建《幻兽帕鲁Palworld》多人游戏专属服务器,搭建方法分享
对于《幻兽帕鲁》的忠实粉丝来说,与好友一同在游戏中探险、生存无疑增加了更多的乐趣。而为了实现这一愿望,搭建一个专属的多人游戏服务器就显得尤为重要。今天,我将为大家带来一篇极简教程,教您如何在三次点击内,轻松搭建《幻兽帕鲁》的专属服务器。
|
19小时前
|
弹性计算 Ubuntu Linux
幻兽帕鲁Palworld服务器搭建教程,2024年阿里云部署帕鲁服务器保姆级方法
对于热爱《幻兽帕鲁》的玩家们来说,能够拥有属于自己的游戏服务器,无疑是提升了游戏的自由度和乐趣。那么,怎样才能部署幻兽帕鲁服务器呢?接下来,就让我们一起走进这个简单易懂、保姆级的教程吧!
120 0
|
19小时前
|
弹性计算 Ubuntu Linux
2024年Palworld/幻兽帕鲁联机服务器搭建方法分享,详细步骤
想要和好友一起畅游幻兽帕鲁的世界吗?别再为联机而烦恼,因为搭建自己的服务器其实并不难!今天,就为大家带来一篇超详细的幻兽帕鲁服务器搭建教程,保证让你轻松上手!
23 0
|
19小时前
|
网络协议 Ubuntu Linux
「远程开发」VSCode使用SSH远程linux服务器 - 公网远程连接
「远程开发」VSCode使用SSH远程linux服务器 - 公网远程连接
153 0
|
19小时前
|
Java 关系型数据库 应用服务中间件
webgis Web 服务器端开发
webgis Web 服务器端开发
25 1

热门文章

最新文章