HTML 块定义 Web 页面的布局、引用变量,并使用 HTML 块作为宏的入口和出口点 来调用函数。 HTML 总是在 Net.Data 调用请求中指定的,并且每个宏必须至少有一个 HTML 块。
例子宏文件中的第一个 HTML 块称为 INPUT。INPUT 块包含具有一个输入 字段的简单表格。
%{ ********************** HTML 块:输入 ************************%} %HTML (INPUT) { <--- 标识该 HTML 块的名称。 <html> <head> <title>$(page_title)</title> <--- 加注变量替换。 </head><body> <h1>Input Form</h1> Today is @today() <--- 该行包含对一个函数的调用。 <FORM METHOD="post" ACTION="output"> <--- 该表格提交时, 将调用 "output" HTML 块。 输入一些数据传送给一个 REXX 程序: <INPUT NAME="input_data" <--- 在表格被提交时 "input_data" 被定义, TYPE="text" SIZE="30"> 并且可以在该宏中的任何地方引用它。 它已被初始化为输入字段中的某种用户类型。 <p> <INPUT TYPE="submit" VALUE="Enter"> < hr> <p> [ <a href="/">Home page</a>] </body><html> %} <--- 关闭 HTML 块。
整个块由 HTML 块标识符 %HTML (INPUT) {...%}括起。INPUT 标 识了该块的名称。 您可为它取任何名称。HTML <title> 标记包含了变量替换的例子。变量 page_title 的值替换了表格的标题。
此块还具有一个函数调用。表达式 @today() 是对函数 today 的调用 。该函数是在随后描述的 FUNCTION 块中定义的。Net.Data 将 today 函数的结果(即当前日期)插入 HTML 文本中与 @today() 表达式相同的 位置。
FORM 语句的 ACTION 参数提供了一个在 HTML 块之间或在宏之间游历的例子。表格提交 时,ACTION 参数中对另一块名称的引用将访问此块。HTML 表中的任何输入数据都作为隐式变量 传送给块。 该表上定义的单个输入字段,就是这样的。当表格提交时,该字段中输入的数据在变量 input_data 中传送给 HTML 输出块。
如果另一个宏文件在相同的 Web 服务器上,您就可以用交叉引用来访问该宏文件中的 HTML 块 。例如,ACTION 参数 ACTION="../othermacro.d2w/main" 访问宏文件 othermacro.d2w 中 HTML 块调 用的主程序。表格中的任何数据类型再次在 input_data 中传送给该宏。
在调用 Net.Data 时,您将变量作为 URL 的一部分传送。例如:
<a href="/cgi-bin/db2www/othermacro.d2w/main?input_data=value">Next macro</a>
不需要定义环境变量来接收输入数据,因为您具有大多数 CGI 程序。Net.Data 将为您处理 环境变量。您只需要引用变量名。
例子中的下一个 HTML 块是 OUTPUT 块。 它包含 HTML 标记和 Net.Data 宏语句,这些宏语句定义 INPUT 块请求所处理的输出。
%{ ********************** HTML 块:输出 ************************%} %HTML(OUTPUT) { <html> <head> <title>$(page_title)</title> <--- 更多替换。 </head><body> <h1>Output Page</h1> <p>@rexx1(input_data) <--- 该行包含对函数 rexx1 的调用,并传送参数 "input_data"。 <p> < hr> <p> [ <a href="/">Home page</a> | <a href="input">Previous page</a>] %}
与 INPUT 块相似,此块也是 标准 HTML,其中使用 Net.Data 宏语句来替换变量和函数调用。 再次用 page_title 变量来替换标题语句。与上面相似,此块也包含一个函数调用。在 此情况下,它调用函数 rexx1 并将变量 input_data 的内容传送给它,该 变量接收自 Input 块中定义的表格。您可以将任何数目的变量传送给函数,或从函数中传送回任 何数目的变量。函数定义确定了传送的变量的数目和类型。