HTML 块定义 Web 页面的版面设置,引用变量并调用函数。HTML 块被用作宏的入口点 和出口点。HTML 块总是在 Net.Data 宏请求中指定的,并且每个宏必须至少有一个 HTML 块。
示例宏中的第一个 HTML 块名为 INPUT。HTML(INPUT) 块包含用于具有 一个输入字段的简单表的 HTML。
%{ ********************** HTML Block: Input ************************%} %HTML (INPUT) { <--- Identifies the name of this HTML block. <html> <head> <title>$(page_title)</title> <--- Note the variable substitution. </head><body> <h1>Input Form</h1> Today is @today() <--- This line contains a call to a function. <form method="post" action="output"> <--- When this form is submitted, the "OUTPUT" HTML block is called.<p> Type some data to pass to a REXX program: <input name="input_data" <--- "input_data" is defined when the form TYPE="text" SIZE="30" /> is submitted and can be referenced elsewhere in this macro. It is initialized to whatever the user types into the input field. </p> <input type="submit" value="enter" /> < hr> <p> [ <a href="/">Home page</a>]</p> </body><html> %} <--- Closes the HTML block.
整个块由 HTML 块标识符 %HTML (INPUT) {...%} 括起来。INPUT 标 识了该块的名称。名称可以包含任何字母数字字符、下划线字符或句点。HTML <title> 标记包含了变量替换的示例。变量 page_title 的值替换了表的标题。
此块还具有一个函数调用。表达式 @today() 是对函数 today 的调用 。该函数是在上面描述的 FUNCTION 块中定义的。Net.Data 将 today 函数的结果(即当前日期)插入 HTML 文本中与 @today() 表达式相同的 位置。
FORM 语句的 ACTION 参数提供了一个在 HTML 块之间或在宏之间浏览的示例。表提交时, ACTION 参数中对另一块名称的引用将访问此块。HTML 表中的任何输入数据都作为隐式变量 传送给块。该表上定义的单个输入字段,就是这样的。当表提交时,在此表中输入的数据被传送到 变量 input_data 中的 HTML(OUTPUT) 块。
如果另一个宏在相同的 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>
您可以通过引用表中指定的变量名来访问或处理宏中的表数据。
示例中的下一个 HTML 块是 HTML(OUTPUT) 块。它包含 HTML 标记和 Net.Data 宏语句, 这些语句定义 HTML(INPUT) 请求所处理的输出。
%{ ********************** HTML Block: Output ************************%} %HTML (OUTPUT) { <html> <head> <title>$(page_title)</title> <--- More substitution. </head><body> <h1>Output Page</h1> <p>@rexx1(input_data) <--- This line contains a call to function rexx1 passing the argument "input_data". <p> <hr> <p> [ <a href="/">Home page</a> | <a href="input">Previous page</a>] %}
与 HTML(INPUT) 块相似,此块也是标准 HTML,其中使用 Net.Data 宏语句来 替换变量和函数调用。再次用 page_title 变量来替换标题语句。与上面相似, 此块也包含一个函数调用。在 此情况下,它调用函数 rexx1 并将变量 input_data 的内容传送给它,该 变量接收自 Input 块中定义的表。您可以将任何数目的变量传送给函数,或从函数中传送回任 何数目的变量。函数定义指定传递的变量数目及其用法。