IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  WebSphere  >

VisualAge for Java 版本 3.5.3/WebSphere Studio 3.5.2: JSP 1.1 开发

第 1 部分 -- 在 VisualAge for Java 和 WebSphere Studio 中使用 JSP 和定制标记符

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

IBM,

2001 年 11 月 01 日

WBOnline 正在走向国际化!用户要求在 WBOnline 中货币能以特定的语言环境显示(即美国 $、法国 Francs、德国 DM 等)。 为满足这一要求,我们将采用定制标记符库(JSP 1.1 中新的关键功能),它能够以适当的语言环境显示货币。

一、简介

当前的 WBOnline 演示是使用 servlet、JSP (1.0) 和 EJB 的 VisualAge® for Java™/WebSphere® 演示。WBOnline (或 WEBBank Online)代表了一个在线银行的 Web 应用。我们将使用 WBOnline 作为 VisualAge for Java 和 WebSphere 的许多实际操作专题讨论的基础。

WBOnline 正在走向国际化!用户要求在 WBOnline 中货币能以特定的语言环境显示(即美国 $、法国 Francs、德国 DM 等)。 为满足这一要求,我们将采用定制标记符库(JSP 1.1 中新的关键功能),它能够以适当的语言环境显示货币。

此次专题讨论的第 1 部分将教您逐步使用 WebSphere Studio 3.5.2 和 VisualAge for Java 3.5.3 为 WBOnline 添加定制标记符,然后在 WebSphere 测试环境下使用 VisualAge for Java 进行测试。

此次专题讨论的 第 2 部分将教您逐步使用 WebSphere Studio 创建 Web 压缩文档(WAR文档),并发布到 WebSphere 应用程序服务器 3.5.3。

要点!您必须已经完成 第 1 部分 -- 在 VisualAge for Java WebSphere 测试环境中配置 WBOnline的学习,并且在 VisualAge for Java 3.5.3 中的 WebSphere 测试环境下运行了 WBOnline,才能继续此次专题讨论的学习。在第 1 部分 WBOnline 入门教程第 1 部分的学习中,你需要用到wbonline-352.wsrWebSphere Studio 3.5.2 压缩文档,而不是在入门教程第 4 部分的第 1c 步中提到的wbonline.wsr。该文件作为 jsp_solution.zip文件的一部分可下载得到。





回页首


二、所需软件

  • 带有 fixpack 6a 或更高的 Windows NT 4.0 或 Windows 2000
  • VisualAge for Java,企业版,版本 3.5.3 (完全安装)
  • 带有 fixpack 2 的 WebSphere Studio,高级版,版本 3.5 (完全安装)
  • 带有 fixpack 1 或更高的 DB2 UDB、版本 7.1 (完全安装)
  • Internet Explorer 5.0 或更高版本
  • 带有 fixpack 2 的 WebSphere Application Server 版本 3.5 或更新版本
  • IBM HTTP Server,版本 1.3.12 (通常这是作为 WebSphere Application Server 的一部分安装)
  • IBM JDK 1.2.2(通常这是作为 WebSphere 应用程序服务器的一部分安装)

在本实际操作专题讨论开始之前,这些产品必须按照 T335Inst.html安装脚本安装并配置。

您也可以在 jsp_solution.zip中下载针对本教程的解决方案文件。





回页首


三、配置 VisualAge for Java

1.启动 VisualAge for Java,版本 3.5.3.

2.在 VisualAge for Java 中将显示货币的定制标记符库导入 WBOnline:


a. 在 VisualAge for Java 中的 Project 视图,高亮选中 WBOnline 工程,单击鼠标右键,在弹出菜单中选择 Manage => Create Open Edition

b. 高亮选中 WBOnline工程,单击鼠标右键,然后选择弹出菜单的 Import

c. 在 Import SmartGuide 的第一页选择 directory的导入源。 单击 Next按钮。

d. 在 Import SmartGuide 的第二页,指定目录为x:\STEW3.5\hands-on\VAJ353GettingStarted\Part-I。确保 .java复选框选中, resource复选框未选中。这样就把一个.java文件导入到 WBOnline Project 中。该文件是 DisplayCurrencyTag.java,在可下载的 jsp_solution.zip文件中。

单击 Finish完成导入。

WBOnline 工程应该类似于下图:

DisplayCurrencyTag 类提供定制 JSP 标记符的实际实现,我们将用来显示基于语言环境的货币。

3.修改 WebSphere 测试环境,以支持 JSP 1.1:


缺省状态下,WebSphere 测试环境支持 JSP 1.0。我们需要修改 WebSphere 测试环境,使其支持 JSP 1.1。(如果 Servlet 引擎正在 WebSphere 测试环境下运行,请将其关闭。)

a. 使用记事本或文本编辑器编辑:

   x:\ibmvjava\ide\project_resources\IBM WebSphere Test Environment\
     hosts\default_host\default_app\servlets\default_app.webapp

b. 将 JSP Support Servlet <code> 参数更改为
<code>com.ibm.ivj.jsp.jasper.runtime.JspDebugServlet</code>

c. 将 scratchdir <value> 修改为
<value>$server_root$/temp/JSP1_1/default_app</value>


注意:default_app.webapp 现在应该如下显示:(您已更改的参数部分将以粗体显示)

<?xml version="1.0"?>
<webapp>
   <name>default</name>
   <description>default application</description>
   <error-page>/ErrorReporter</error-page>

   <servlet>
      <name>ErrorReporter</name>
      <description>Defaulterror reporter servlet</description>
      <code>com.ibm.servlet.engine.webapp.DefaultErrorReporter</code>
      <servlet-path>/ErrorReporter</servlet-path>
      <autostart>true</autostart>
   </servlet>

   <servlet>
      <name>invoker</name>
      <description>Auto-registrationservlet</description>
      <code>com.ibm.servlet.engine.webapp.InvokerServlet</code>
      <servlet-path>/servlet</servlet-path>
      <autostart>true</autostart>
   </servlet>

   <servlet>
      <name>jsp</name>
      <description>JSP supportservlet</description> 
       <code>com.ibm.ivj.jsp.jasper.runtime.JspDebugServlet</code>
      <init-parameter>
         <name>workingDir</name>
         <value>$server_root$/temp/default_app</value>
      </init-parameter>
      <init-parameter>
         <name>jspemEnabled</name>
         <value>true</value>
      </init-parameter>
      <init-parameter>
         <name>scratchdir</name>
         <value>$server_root$/temp/JSP1_1/default_app</value>
      </init-parameter>
      <init-parameter>
         <name>keepgenerated</name>
         <value>true</value>
      </init-parameter>
      <autostart>true</autostart>
      <servlet-path>*.jsp</servlet-path>
   </servlet>

   <servlet>
      <name>file</name>
      <description>File servingservlet</description>
      <code>com.ibm.servlet.engine.webapp.SimpleFileServlet</code>
      <servlet-path>/</servlet-path>
      <init-parameter>
         <name></name>
         <value></value>
      </init-parameter>
      <autostart>true</autostart>
   </servlet>
</webapp>
 

d. 保存default_app.webapp并关闭编辑器。





回页首


四、在 WebSphere Studio 中使用定制标记符库

1.启动 WebSphere Studio 3.5.2:


a. 打开 WBOnline WebSphere Studio Project。

2.修改 WBOnline Project 的 Project 属性:


a. 在 WebSphere Studio 中,高亮选中 WBOnline工程,单击鼠标右键,然后选择弹出菜单的 Properties

b. 在 WBOnline 属性对话框中单击 Advanced标签。

c. 将 JSP version改为 1.1

单击 OK

3.将标记符库添加到 WBOnline Project 中:

a. 高亮选中 WBOnline工程,单击鼠标右键,然后选择弹出菜单的 Insert => Folder

b. 指定一个叫 WEB-INFFolder Name

单击 OK创建一个 WEB-INF 文件夹。

c. 高亮选中新建的 WEB-INF文件夹,单击鼠标右键,然后选择弹出菜单的 Insert => File

d. 单击 Use Existing标签并指定文件为x:\stew3.5\hands-on\VAJ353GettingStarted\Part-I\wbotags.tld.。

wbotags.tld是 JSP 1.1 的标记符库。标记符库是包含定制标记符定义的 XML 文件(从 JSP 的角度讲)。本例中,定义了一个被称为 displayCurrency,用于货币格式的 JSP 标记符。

单击 OK将标记符库添加到 WBOnline 工程中。

WBOnline 工程现在应该如图所示:

4.使用定制标记符库定制WBTxnActivityResults.jsp:

a. 双击WBTxnActivityResults.jsp启动 WebSphere Page Designer。

b. 确保在 Page Designer 中显示 Normal视图。选择菜单条上的 Format =>Page Properties

c. 选择属性对话框的 JSP Tags标签。

d. 单击 Tag Type下拉列表,在列表中选择 JSP Directive - taglib

e. 单击 Add。 Edit JSP Element 对话框打开。

f. 在 Edit JSP Element对话框中,使用 URI下拉列表并选择\WEB-INF\\wbotags.tld(要点:务必使用下拉列表,而不使用 Browse按钮)。

Tag Prefix必须事先填上文本 wbotags。 单击 OK关闭 Edit JSP Element对话框。

g. 单击 OK关闭 Attributes对话框。

5.在 WBTxnActivityResults.jsp 中为语言环境添加一个 JSP 申明:

我们将在 JSP 中添加一个 JSP 申明来表明语言环境。这样做的目的是使您能在 JSP 中切换语言环境(而不改变工作站的语言环境),以观察运行时定制标记符如何工作。a. 在 Normal视图中,将光标定位到如下所示的 JSP 开头部分(就在 UseBean 标记符的 右边),如下图所示。

b. 选择弹出菜单的 Insert => JSP Tags =>Declaration

c. 在 Script 对话框中添加如下的申明:

java.util.Locale locale = java.util.Locale.getDefault();



单击 OK创建 JSP 申明,关闭 Script 对话框。

一个绿色的 {J}将会在 Normal 视图中出现(如下图所示)。

6.将 JSP 定制标记符添加到 WBTxnActivityResults.jsp 。

当粗略地查看 WBWTxnActivityResults.jsp时,会看到显示所有给定账户的交易的 HTML 表。在表的底部,我们将看到 Total行,显示了给定账户所有交易总和。绿色的 {J} 代表显示 total 属性的 JSP 表达(如下图所示)。总和是该 JSP 文件使用的 Java bean 中的一个属性。

我们希望在 Total行中插入定制标记符,使其基于语言环境显示货币。

a. 将光标定位到 Total 行绿色 {J}左边(如下图所示)。

b. 选择菜单中的 Insert => JSP Tags =>Insert a Custom Tag

c. 从\WEB-INF\\wbotags.tldTag library 中选择 displayCurrency定制菜单。

d. 单击 Insert添加定制标记符。

e. 单击 Close关闭 Insert Custom Tag对话框。此时将会出现绿色的 {T}(如下图所示)。这是嵌入的定制标记符的位置的可视化表示。

displayCurrency 标记符需要设置两个属性(一个是 amount,另一个是 locale)。

f. 双击绿色的 {T}

g. 选择 Name下拉列表,并选择 amount属性。

h. 指定 Value<%= txnListData.getTotalBalance()%>

单击 Add按钮。

i. 选择 Name下拉列表,选择 locale属性。

j. 指定 Value<%=locale%>

单击 Add

k. 单击 OK关闭 Attributes对话框。

我们已经完成了添加以适当货币显示收支差额的定制标记符,现在可以除去原先在 Total 栏显示收支差额的原先的 {J}。

l. 删除在 Total行中定制标记符 {T}右边的 {J}标记符。 Total行应该如下图所示:

您可切换到源代码视图察看定制 JSP 标记符。应该类似这样:

<wbotags:displayCurrency amount="<%= txnListData.getTotalBalance()%>" locale="<%=locale %>" />

请注意,该定制标记符的数量和语言环境的属性值通过使用 JSP 表达式决定。

m. 选择 File => Save菜单选项保存完成的 JSP 文件。

n. 在 Project 视图下,高亮选中WBTxnActivityResults.jsp,单击鼠标右键,选择弹出菜单的 CheckIn

四、在 VisualAge for Java 和 WebSphere 测试环境中发布与测试

1.向 WebSphere 的测试环境发布 WBOnline:

a. 在 WebSphere Studio 中选择 Window => Publishing菜单选项,切换到 Publishing视图。

b. 确保 VAJ发布阶段可见。(VAJ 发布阶段是在早几期的专题讨论中创建的。)

c. 高亮选中 VAJ发布阶段,单击鼠标右键,选择弹出菜单的 PublishWhole Project

d. 单击 OK按钮向 WebSphere 测试环境发布 WBOnline。

e. 单击 Yes并选中在发布过程中出现的任何消息框中的 donot show this dialog again复选框。

2.启动 VisualAge for Java WebSphere 测试环境:

a. 切换到 VisualAge for Java,从菜单中选择 Workspace => Tools => WebSpheretest environment

b. 如果 Persistent Name Server 尚未启动,在 WebSphere 测试环境控制中心高亮选中 PersistentName Server单击 Start theName Server按钮。

等待 Persistent Name Server 启动。您可以察看 VisualAge Console 窗口,检查 Persistent Name Server 的状态。您会发现 Serveropen for business消息显示在控制台上。

c. 在 WebSphere 测试环境控制中心,高亮选中 Servlet Engine,单击 Start Servlet Engine按钮。您可察看 VisualAge for Java Console 窗口,检查 Servlet 引擎状态。您会发现 ***Servlet Engine is Started***消息显示在控制台上。

注意:您可能会发现出错信息jsp.error.bad.scratch.dir显示在 ServletEngine 的 VisualAge for Java Console。这个错误是合理的!错误信息指出子目录不存在(回想一下我们在default_app.webapp中改变了 scatchdir)。ServletEngine 将创建子目录并正常工作。

d. 在 VisualAge for Java 中,单击 EJB标签切换到 EJB 开发环境。单击 Open EJB Server ConfigurationBrowser按钮(工具条右边第三个按钮)

e. 在 EJB Server Configuration 窗口高亮选中 EJB Server (server1),单击鼠标右键,选择弹出菜单的 Start Server(如果您还没有启动 EJB 服务器的话)。您可观察 VisualAge for Java Console 窗口,检查 EJB 服务器的状态。您将看到 Server open for business消息显示在控制台上。

3.测试 WBOnline Web 应用程序:

a. 切换到 WebSphere Studio,高亮选中 Index.html,单击鼠标右键,选择菜单选项 Preview with -> Internet Explorer

b. 在 Internet Explorer 中单击 Online Account Activity链接。

c. 进入 Customer # 1并单击 Submit按钮。Customer #1 的帐户活动将会出现。

e. 选择第一个账号并单击该数字,展开到交易活动。当交易活动显示后,您会发现 total 以您工作站的缺省语言环境显示货币(如下例所示,语言环境是美国英语,因此以 $ 显示)。

现在我们要将 JSP 文件的语言环境切换到不同的语言环境,观察具有不同语言环境的定制标记符的效果。

4.将 WBTxnActivityResults.jsp 中的语言环境切换到不同的语言环境:

a. 在 WebSphere Studio 中双击 WBTxnActivityResults.jsp

b. 双击 JSP 左上角的绿色 {J}。(它代表我们在先前的步骤中创建的 JSP 语言环境申明。)

c. 在脚本编辑器中,将 JSP 表达式从


java.util.Locale locale = java.util.Locale.getDefault();
   改变为
java.util.Locale locale = java.util.Locale.FRANCE; d. 单击 OK 关闭脚本对话框。

e. 选择菜单中的 File => Save保存WBTxnActivityResults.jsp.。

f. 在 WebSphere Studio Project 视图,高亮选中WBTxnActivityResults.jsp,单击鼠标右键,然后选择弹出菜单的 Publish this File

g. 单击 Publishing Options对话框的 OK按钮。

h. 在 Files to Publish 对话框,高亮选中localhost:8080/WBTxnActivityResults.jsp(由于我们没有检入 JSP 文件,所以该对话框出现了)。

单击 OK

单击在发表过程中出现的任何消息框的 Yes

i. 切换回 Internet Explorer 并单击 Refresh按钮 刷新页面。

total 以基于法语语言环境的货币格式显示,因此您会发现定制 JSP 标记符起到了作用!

j. 完成后,您可切换回 WebSphere Studio,选择WBTxnActivityResults.jsp,单击鼠标右键,然后选择 Undo Checkout恢复到最初使用缺省语言环境的 JSP。然后您可重新发布 JSP 文件。

VisualAge for Java 也可让您交互地调试您的 JSP 定制标记符 Java 代码。只需简单地在您定制标记符代码中设置一个断点(在本例中,您可在 wbo.tags.DisplayCurrencyTag类中的 doEndTag()方法中设置断点)。当运行包含定制标记符的 JSP 文件时,VisualAge for Java 调试器将会弹出,使您在定制标记符代码中不断调试并更改代码。这是 VisualAge for Java 的一项强大(并且很酷)特征。

恭喜!您已经学会了如何在 VisualAge for Java 3.5.3 WebSphere 测试环境中配置 JSP 1.1,以及如何在 WebSphere Studio 3.5.2 中使用定制标记符!

该专题的第 2 部分 将 WBOnline 部署到 WebSphere(高级版 -- 3.5.3),将有步骤地引导您将 WBOnline Demo 打包成 Web 压缩文档(WAR),并在 WebSphere Application Server 3.5.3 配置中发布/测试。



关于作者

IBM has authored this article




对本文的评价










回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款