练习 1.2:基本变量

此教程中随后的一些练习中讨论不同类型的 EGL 数据部件。数据部件是可用于 EGL 应用程序的数据结构。定义了数据部件之后,可以从该数据部件创建任意数目的变量。在这个意义上,可以将数据部件看作变量的模型。

主要数据部件类型

以下是常用 EGL 数据部件类型的列表,每种数据部件都附有简要的描述。这些数据部件类型按从最简单到最复杂列出,每种类型都在较简单的数据部件的基础上构建。有关数据部件的更多信息可在帮助中找到。dataItem 和记录在此教程后面的练习中讨论。

基本变量
基本变量是 EGL 中最简单的数据部件。有三组基本变量:
dataItem
dataItem 部件基于单个基本变量或另一个 dataItem,具有已添加的 EGL 属性。dataItem 允许您定制基本变量以在应用程序中进行特定使用。例如,如果您的应用程序使用电话号码,则可以定义一个 dataItem 部件来表示一个电话号码。表示电话号码的 dataItem 将基于一个数字基本变量并具有指定它的长度和格式选项的 EGL 属性。
记录
记录部件是一组具有已定义结构的其它数据部件。记录通常用来表示数据库记录。例如,记录可表示有关数据库中的人员(例如,客户或职员)的信息。此记录可包括 dataItem 来表示人员姓名、电话号码、邮寄地址、电子邮件地址以及其它信息。

EGL 基本变量的类型

以下是基本变量以及如何从基本变量创建变量的一些示例:

char
Char 基本变量存放字母数字数据。严格说来,char 基本变量只能包含单个字母数字字符,但为了简化起见,EGL 可将许多 char 基本变量集中到具有指定字母数字字符数(最多 32,767 个字符)单个变量中。例如,以下代码创建了名为 myCharVariable 存放 50 个字母数字字符的 char 变量:

myCharVariable char(50);

int
Int 基本变量存放整数值,即没有小数位的数字值。Int 基本变量不能大于 11 亿并且不能小于 -11 亿。例如,以下代码创建了 int 变量:

myIntVariable int;

bin
Bin 基本变量存放二进制数字值。与 int 变量不同,bin 变量没有已设置的大小;创建 bin 变量时必须给它们指定 4、9 或 18 位的长度参数。此长度参数以位为单位确定存储在变量中的数的最大大小。例如,以下代码创建了可存放最长 4 位、使用两个字节的数字的 bin 变量:

myBinVariable bin(4);

num
Num 基本变量存放具有给定小数位数的数字值。在创建 Num 变量时必须给它指定总长度和小数位数,最多可以有 31 位小数。以下代码创建存放总长为 9 位,其中包含两个小数位的 num 变量。在此示例中,该变量可以存放 9,999,999.99 与 -9,999,999.99 之间的数字。

myNumVariable num(9,2);

Intbin 基本变量都以二进制格式存储,而 num 基本变量以每位使用一个字节的格式存储。因此,num 基本变量占用更多的空间。

date
Date 基本变量存放反映特定日历日期的八个单字节数字。这八个数字的格式为 yyyyMMdd
yyyy
表示年份(从 0000 到 9999)的四位数字。
MM
表示月份(从 01 到 12)的两位数字。
dd
表示日(从 01 到 31)的两位数字。

将针对 Date 变量检查有效性,因此,输入无效日期(例如,20050230)会产生错误。以下代码创建 date 变量:

myDateVariable date;

time
Time 基本变量存储表示特定时间的六位单字节数字。这六位数字的格式为 HHmmss
HH
表示小时的两位数字。范围是 00 到 24。
mm
表示小时内的分钟数的两位数字。范围是 00 到 59。
ss
表示分钟内的秒数的两位数字。范围是 00 到 59。

在 Web 页面上使用 EGL 基本变量

下列步骤说明如何创建使用基本变量的基本 Web 页面。在开始这些步骤之前,确保完成了教程简介中概述的先决条件。

  1. 如果未处于 Web 透视图中,则通过单击窗口 > 打开透视图 > Web 来切换到 Web 透视图。
  2. 在“项目资源管理器”视图中,单击 EGLWeb 项目以选择它。“项目资源管理器”视图通常位于工作台的左边。如果看不到“项目资源管理器”视图,则单击窗口 > 显示视图 > 项目资源管理器

    如果创建文件之前没有选择项目或文件夹,则该文件就不会出现在您想要放置的位置。

  3. 从菜单栏中,单击文件 > 新建 > Faces JSP 文件。将打开“新建 Faces JSP 文件”向导。
  4. 名称字段中,输入以下名称作为文件名:

    PrimitiveTest

  5. 选择从页面模板创建复选框。
  6. 单击下一步
  7. 页面模板类型下面,单击用户定义的页面模板
  8. 缩略图下面,单击 A_gray.htpl 模板。

    “新建 Faces JSP 文件”向导看起来应如下所示:

    “新建 Faces JSP 文件”向导的外观

  9. 单击完成。这就会将新文件添加至项目,并且该文件会在编辑器中打开。

在 PageHandler 中创建基本变量

  1. 在新的 PrimitiveTest.jsp 页面中,删除缺省文本 Place your page content here
  2. 在删除文本的位置,输入 Primitive Variables,然后按 Enter 键。
  3. 右键单击页面,然后单击编辑页代码。将打开页代码文件,该文件包括此页面的 PageHandler。该页代码文件名为 PrimitiveTest.egl,位于 pagehandlers 包中。
  4. 删除页代码文件中的所有代码并用以下代码替换它:

    package pagehandlers;
    
    PageHandler PrimitiveTest
      {view="PrimitiveTest.jsp", onPageLoadFunction=onPageLoad}
    
    //Variables
    
    //Variables based on character primitives
    myCharVariable      char(44);
    myMbcharVariable    mbchar(44);
    myUnicodeVariable   unicode(44);
    myHexVariable       hex(4);
    
    //Variables based on numeric primitives
    myIntVariable          int;
    myBigintVariable       bigint;
    mySmallintVariable     smallint;
    myDecimal7_2Variable   decimal(7,2);
    myNum7_2Variable       num(7,2);
    
    //Variables based on datetime primitives
    myDateVariable   date;
    myTimeVariable   time;
    
      Function onPageLoad()
        myCharVariable         = "This is my char variable";
        myMbcharVariable       = "This is my mbchar variable";
        myUnicodeVariable      = "This is my unicode variable";
        myHexVariable          = "012B";
        myIntVariable          = 1111;
        myBigintVariable       = 22222222;
        mySmallintVariable     = 333;
        myDecimal7_2Variable   = 44.44;
        myNum7_2Variable       = 555.55;
        myDateVariable         = "20050101";
        myTimeVariable         = "010101";
      End
    
      Function changeValues();
        myCharVariable         = "New value for the char variable";
        myMbcharVariable       = "New value for the mbchar variable";
        myUnicodeVariable      = "New value for the unicode variable";
        myHexVariable          = "079F";
        myIntVariable          = 6666;
        myBigintVariable       = 77777777;
        mySmallintVariable     = 888;
        myDecimal7_2Variable   = 99.99;
        myNum7_2Variable       = 111.11;
        myDateVariable         = "20061115";
        myTimeVariable         = "090909";
      End
    
    End

    以下是一些有关刚才插入的代码的技术说明:

  5. 保存并关闭该页代码文件。

在页面上显示变量

既然已经在 PageHandler 中创建了变量,就可以在 EGL 代码或页面上使用它们了。在下面的步骤中,将变量添加至页面并在服务器上测试页面。

  1. 返回到 PrimitiveTest.jsp 页面。
  2. 打开“页数据”视图。

    “页数据”视图通常位于工作台的左下方。如果找不到“页数据”视图,则单击窗口 > 显示视图 > 页数据,然后它将打开。

  3. 在“页数据”视图中,展开 PrimitiveTestActions

    如果没有看到 PrimitiveTest,则保存该页面以刷新“页数据”视图。

    “页数据”视图显示可用于此 Web 页面的数据和函数。您已经将 11 个基本变量添加至此页面的 PageHandler,现在这 11 个变量都列示在“页数据”视图的 PrimitiveTest(PageHandler 的名称)下面。还添加了一个名为 changeValues() 的函数,该函数现在列示在“页数据”视图的 Actions 下面。“页数据”视图看起来应如下所示:

    “页数据”视图的外观

  4. 选择列示在“页数据”视图中 PrimitiveTest 下面的所有基本变量。
    1. 单击列表顶部的变量以选择它。
    2. 按住 Shift 键单击列表底部的变量以选择它。现在,所有变量都处于选中状态。
  5. 将所有变量从“页数据”视图拖到页面上。“插入控件”窗口将打开。
  6. 在“插入控件”窗口中,单击更新现有记录
  7. 单击选项。将打开“选项”窗口。
  8. 在“选项”窗口中,清除删除按钮复选框。
  9. 选择提交按钮复选框。
  10. 在提交按钮的标签字段中,输入显示新的值

    “选项”窗口看起来应如下所示:

    “选项”窗口的外观

  11. 单击确定
  12. 单击完成。就会以表的形式将这些变量放置在页面上,并且具有 11 个带有标签的输入字段和一个标记有“显示新的值”的提交按钮。
  13. changeValues() 函数从“页数据”视图直接拖到 Web 页面上的显示新的值按钮上。现在,该按钮就绑至该函数了;当用户单击该按钮时,就会调用 PageHandler 中的 changeValues() 函数。

    该页面看起来应如下所示:

    Web 页面的外观

  14. 保存该页面。
  15. 在“项目导航器”视图中,右键单击 PrimitiveTest.jsp 页面,然后从弹出菜单中单击运行 > 在服务器上运行

    Web 页面将在工作台内部的 Web 浏览器中打开。如果您更希望使用外部的 Web 浏览器,则可以从工作台内部的 Web 浏览器中复制 URL 并将其粘贴至外部浏览器的 URL 栏中。

  16. 当页面打开时,注意输入字段显示的是变量的当前值。

  17. 在浏览器中打开的 Web 页面(不是在编辑器中打开的页面)上,单击显示新的值按钮。

    当单击此按钮时,就会调用 changeValues() 函数并且会给变量赋予新的值。现在,输入字段显示的是新的值。

现在您已经知道如何创建和使用基本变量了。在接下来的两个练习中,将应用这些知识来处理更复杂的变量和数据部件。

现在,您可以开始进行练习 1.3:dataItem 了。

反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.