IBM Books

管理与程序设计指南,OS/400 版

HTML 块

HTML 块定义 Web 页面的版面设置,引用变量并调用函数。HTML 块被用作宏的入口点 和出口点。HTML 块总是在 Net.Data 宏请求中指定的,并且每个宏必须至少有一个 HTML 块。

示例宏中的第一个 HTML 块名为 INPUTHTML(INPUT) 块包含用于具有 一个输入字段的简单表 的 HTML。

%{ **********************    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(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 块:输出      ************************%}
%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>]
%}

HTML(INPUT) 块相似,此块也是标准 HTML,其中使用 Net.Data 宏语句来替换变量和函数调用。 再次用 page_title 变量来替换标题语句。 与上面相似,此块也包含一个函数调用。 在 此情况下,它调用函数 rexx1 并将变量 input_data 的内容传送给它,该 变量接收自 Input 块中定义的表。 您可以将任何数目的变量传送给函数,或从函数中传送回任 何数目的变量。函数定义指定传递的变量数目及其用法。


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]