首页 > 其他分享 >第二十八章 使用 CSP 进行基于标签的开发 - 运行时表达式

第二十八章 使用 CSP 进行基于标签的开发 - 运行时表达式

时间:2022-10-27 09:26:18浏览次数:52  
标签:第二十八章 标签 Write Item HTML 表达式 CSP 运行

第二十八章 使用 CSP 进行基于标签的开发 - 运行时表达式

运行时表达式

CSP 文档可能包含在提供页面时(即在运行时)在 CSP 服务器上运行的表达式。此类表达式使用 #(expr)# 指令分隔,其中 expr 是有效的 ObjectScriptBasic 表达式(取决于页面的默认语言;运行时表达式中使用的语言必须与 CSP 文档的默认语言匹配。)

注意:请注意,#(expr)# 指令支持名称间接,不支持参数间接。

例如,包含以下内容的 CSP 文档:

Two plus two equals <b>#(2 + 2)#</b>

在生成的类中生成以下代码:

Write "Two plus two equals <b>", (2 + 2), "</b>",!

反过来,它将以下内容发送到 HTTP 客户端:

Two plus two equals <b>4</b>

运行时表达式示例;

  • 页面前面设置的变量的值
The answer is <b>#(answer)#</b>.
  • 对象属性或方法
Your current balance is: <b>#(account.Balance)#</b>.
  • %ResultSet中的字段在对象中
<table>
<csp:while condition="result.Next()">
<tr><td>#(result.Get("BookTitle"))#</td></tr>
</csp:while>
</table>
  • 使用 %request 对象的 URL 参数
<table bgcolor='#(%request.Data("tablecolor",1))#'></table>

运行时表达式可以位于 CSP 文档中 #(expr)# 结构可用作合法 HTML 的任何位置。这包括在 HTML 文本中,作为 HTML 元素属性的值,或在客户端 JavaScript 代码的定义中。

如果运行时表达式的值包含任何特殊字符(例如 < or > 、尖括号),需要对它们进行转义以向 HTTP 客户端发送正确的转义序列。要转义它们,请在类中使用 %CSP.Page 提供的转义方法之一。下面的示例显示了 EscapeHTML 类方法。运行该方法时,object.Description 中存在的任何需要转义的字符都将替换为其 HTML 转义序列。

Description: <b>#(..EscapeHTML(object.Description))#</b>.

如果在 HTML 属性值中使用运行时表达式,则在运行时表达式中找到的任何 HTML 实体都将转换为它们所代表的字符,然后再转换为可执行代码。例如:

<font size=#(1 &gt; 0)#>

在生成的类中生成以下代码:

java
 Write "<font size=",(1 > 0),">",!

运行时代码

如果需要的不仅仅是一个简单的表达式在页面内的 CSP 服务器上运行,可以使用 <script runat=server> 标记放置要在 CSP 服务器上运行的代码行。与运行时表达式一样,可以将运行时代码用于各种目的。用于运行时代码的语言(由 <script> 标记的 LANGUAGE 属性指定)必须与 CSP 文档的默认语言匹配。

例如,包含以下内容的 CSP 文档:

<ul>
<script language="cache" runat=server>
    For i = 1:1:4 {
        Write "<li>Item ",i,!
    }
</script>
</ul>

在生成的类中生成以下代码:

 Write "<ul>",!
 For i = 1:1:4 {
    Write "<li>Item ",i,!
 }
 Write "</ul>",!

反过来,它将以下内容发送到 HTTP 客户端:

<ul>
<li>Item 1
<li>Item 2
<li>Item 3
<li>Item 4
</ul>

标签:第二十八章,标签,Write,Item,HTML,表达式,CSP,运行
From: https://www.cnblogs.com/yaoxin521123/p/16830924.html

相关文章

  • 指标-标签,维度-度量,自然键-代理键,数据集市等各名词解析
    作为一个数据人,是不是经常被各种名词围绕,是不是对其中很多概念认知模糊。有些词虽然只有一字之差,但是它们意思完全不同,今天我们就来了解下数仓建设及数据分析时常见的一些......
  • 1.1 基础标签
    1.1基础标签1.1.1注释注释<!--这里面是注释--><!--也可以分多行写注释-->分割线标签<hr/>1.1.2段落段落标签<p>这是一段文字</p>分行标签<br/>标......
  • CSP-S2022 游寄
    前言:最后确实寄了,因为疫情,都没考成。\(8.26\)占坑。\(8.23\)参加浴谷月赛初赛模拟,报的\(S\)组,只有\(71\)分。\(8.25\)\(AK\)了同学出的比赛。\(8.26\)参加了......
  • CSP 2022 退役寄
    坐标SC。去年J组不错,不打了。本来说考完初赛晚上就开坑的,结果没来得及,拖到复赛前夕...9.10初赛线上了,本来希望延迟的,虽然很不现实。。。其实线上线下都一样,虽然还是......
  • CSP-S游寄(流水账)
    我其实没什么想说的,就是想聊一聊这段时间的感受第一天来的时候,我们英明神武的\(Huge\)可能是把发手机的这件事忘了,一路上就只能睡觉,但睡一觉就到了石家庄。我和\(blue......
  • 11-html常用标签与界面交互总结
    HTML常用标签与界面交互总结.md表格标签tablecaptiontheadthtbodytrtdtfoot<!DOCTYPEhtml><html><table><caption>表格的标题</caption><!--表头-->......
  • CSP-S/J 2022 游记
    DAY\(-3\)晚上,提前面基lhx1048576,一起坐车去SY。在车上,lhx1048576提出了「lhx1048576面基luhouxi」的著名论断,我们一起发明了「AK打铁」和「铁AK」(fAKe=Fe+AK)。......
  • 帝国CMS灵动标签调用多表多模型调用内容
    1、调用多模型的最新文章[e:loop={'select*from(selectid,classid,titleurl,filename,title,newstime,titlepicfromphome_ecms_moviewherenewstimeunions......
  • MyBatis学习笔记之Mapper文件的foreach标签详解
    0x00概述MyBatis的Mapper文件的foreach标签用来迭代用户传递过来的Lise或者Array,让后根据迭代来拼凑或者批量处理数据。如:使用foreach来拼接in子语句。 在学习MyBatis......
  • HTML表格标签2和HTML表单标签概述
    HTML表格标签2:HTML表格标签有:colspan的意思是:合并列rowspan:合并行<caption>:表格标题<thead>:表示表格的头部分<tbody>:表示表格的体部分<tfoot>:表示表格的脚部分......