本教程介绍了如何使用 Sun Java Studio Creator 集成开发环境 (integrated development environment, IDE) 开发一个用于获取 GoogleSearch Web 服务的、与 JSR-168 兼容的 JavaServer Faces Portlet 应用程序。该应用程序使用 GoogleSearch Web 服务检查用户在搜索页上输入的单词和短语的拼写。
要生成 GoogleSearch Portlet,请将 GoogleSearch Web 服务添加到应用程序中,然后设计两个页面:键入用户查询的 GoogleSearch 页和结果页。接下来,为会话 Bean 设置一个属性,以设置第二页的显示值。最后,建立这两个页面之间的导航。
GoogleSearch Web 服务不仅支持对 Google 搜索结果的查询,而且它还是与 Java Studio Creator IDE 捆绑在一起的几个样例 Web 服务之一。 |
|
目录
|
![[spacer]](/im/a.gif) |
 |
在学习本教程之前,您需要熟悉应用程序的开发过程、Portlet 和 Web 服务。 获取 Web 服务对我们了解如何从常规 Web 应用程序访问 Web 服务提供了很大的帮助。
获取 Google 许可证密钥
要使用 Google Web 服务 API,则必须首先创建一个 Google 帐户并获取许可证密钥。Google 帐户和许可证密钥都是免费获取的。许可证密钥允许您每天最多进行 1,000 次自动查询。在继续学习本教程之前,请转至 http://www.google.com/apis/ 创建一个 Google 帐户并获取许可证密钥。
测试 GoogleSearch Web 服务
- 在“服务器”窗口中,展开“Web 服务”> "Samples" > "GoogleSearch"。
- 右键单击 "doSpellingSuggestion" 节点,然后从弹出式菜单中选择“测试方法”。
将显示“测试 Web 服务方法”对话框。请注意,该方法需要参数 key 和 phrase。
- 将 Google 许可证密钥复制并粘贴到
key 参数字段中,在 phrase 字段中键入要检查其拼写的拼写错误的单词或短语,然后单击“提交”。
结果将显示在该对话框的“结果”部分。请注意,如果输入了拼写正确的单词或短语,或者输入一个随机字符串,则 Google 不返回任何结果。
- 单击“关闭”以关闭该对话框。
创建 GoogleSearch Portlet 项目
- 在主菜单中,选择“文件”>“新建项目”。
- 在“新建项目”向导中,从“类别”列表中选择 "Web",从“项目”列表中选择“JSR-168 JSF Portlet 项目”,然后单击“下一步”。
- 将项目命名为
GooglePortlet。
- 单击“下一步”。将打开“Portlet 部署描述符”窗格。
- 单击“完成”以接受缺省值。
将在可视设计器中打开 GooglePortlet 的初始页 PortletPage1。
- 在“服务器”窗口中,选择“Web 服务”> "Samples" > "GoogleSearch",并将 GoogleSearch 放在 PortletPage1 页上。
此时 googleSearchClient1 将显示在“概要”窗口中。
设计搜索页
在本部分中,您将设计 GoogleSearch Portlet 应用程序的搜索页。完成后的搜索页与下图类似。
图 1:搜索页的设计 |
- 将一个“图像”组件从组件面板的“基本”类别拖动到 PortletPage1 上,并将其放在左上角中。
- 在“属性”窗口中,将
url 属性设置为 http://www.google.com/images/logo_sm.gif。将显示 Google 标志。
- 将一个“文本字段”拖动到页面上,并将其放在 Google 标志下方。在“属性”窗口中,通过单击
required 属性的复选框将该属性设置为 True。
- 将一个“按钮”组件拖动到页面上,并将其放在“文本字段”组件的右侧,键入
Spell,然后按 Enter 键。在“属性”窗口中,将其 id 属性设置为 spellButton。
- 将一个“消息组”组件拖动到页面上,并将其放在“文本字段”的下方。
设计结果页
接下来,将创建 GoogleSearch Portlet 应用程序的结果页。完成后的结果页与下图类似。
图 2:结果页的设计 |
- 在“项目”窗口中,右键单击 "GooglePortlet" >“Web 页”,然后选择“新建”>“Portlet 页”。将打开“新建 Portlet 页”对话框。
- 在“文件名”字段中,键入
ResultPage,然后单击“完成”关闭此对话框。将在可视设计器中打开 ResultPage 页。
- 将 Google 图像从 PortletPage1 复制并粘贴到 ResultPage 上。
- 将一个“静态文本”组件从组件面板的“基本”类别拖动到页面上,然后键入
Spelling suggestion:。
- 将另一个“静态文本”组件拖动到页面上,并将其放在第一个“静态文本”组件的右侧。
- 将一个“按钮”组件拖动到页面上,并将其放在第二个“静态文本”组件下方,键入
Try Again,然后按 Enter 键。在“属性”窗口中,将其 id 属性设置为 restartButton。
创建会话 Bean 属性
尽管开发 Portlet 应用程序与开发常规的 Web 应用程序类似,但也存在一些重要的差别。例如,在常规 Web 应用程序中,使用请求 Bean 在应用程序 Web 页之间传递信息。但是,由于 Portlet 在生命周期上的差异,必须为会话 Bean 创建一个属性,然后使用该属性在 Portlet Web 页之间传递信息。
- 在“概要”窗口中,右键单击 SessionBean1,然后选择“添加”>“属性”。
将打开“新建属性模式”对话框。
- 在“新建属性模式”对话框中,键入新属性的名称
result,然后单击“确定”。该属性为缺省的 String 类型。
- 右键单击第二个“静态文本”组件,然后从弹出式菜单中选择“绑定到数据”。将打开“绑定到数据 - staticText2”对话框。
- 在“绑定到数据 - staticText2”对话框中,单击“绑定到对象”标签。将打开“选择绑定目标”窗格,如下图所示。
图 3:将 result 属性绑定到 staticText2 |
- 选择 "SessionBean1" > "result",然后单击“确定”。
请注意,“静态文本”组件在可视设计器中发生的变化。
添加搜索代码和导航
- 将 PortletPage1 的
spellButton_action() 方法修改为调用 Google Web 服务,以执行用户查询。通过单击 PortletPage1 标签返回到 PortletPage1 中,然后双击 "Spell" 按钮。IDE 将打开 PortletPage1 的 Java 视图,插入点位于 spellButton_action() 方法中。
- 将
spellButton_action() 方法替换为以下粗体显示的代码,并将 your_Google_key 替换为您的 Google API 密钥。插入代码后,可以按 Ctrl-Shift-F 组合键自动重新设置代码格式。
| 代码样例 1:GoogleSearch spellButton_action() 方法 |
public String spellButton_action() throws Exception {
String result = "";
String spellword = (String)this.getTextField1().getValue();
try {
result = this.getGoogleSearchClient1().doSpellingSuggestion(
// Replace with your Google Web APIs license key, in quotes
"your_Google_key",
spellword);
} catch (Exception e) {
error(e.getMessage());
log("Page1 failure with GoogleSearch web service", e);
return null;
}
if (result=="") {
this.getSessionBean1().setResult(spellword + " is spelled correctly.");
} else {
this.getSessionBean1().setResult(result);
}
return "search";
}
|
- 单击“设计”标签以返回到可视设计器中。
- 建立页面导航。在可视设计器中的任意位置单击鼠标右键,然后从弹出式菜单中选择“面页导航”。
将打开“页面导航”窗口。
- 单击 PortletPage1.jsp 图标,从 PortletPage1.jsp 上的按钮拖动一条连线到 ResultPage.jsp,键入新连线的名称
search,然后按 Enter 键。
- 单击 ResultPage.jsp 图标,从 ResultPage.jsp 上的按钮拖动一条连线到 PortletPage1.jsp,键入新连线的名称
restart,然后按 Enter 键。
- 单击工具栏上的“运行主项目”按钮部署 Portlet 应用程序。
Apache Pluto Portlet 容器将在 Web 浏览器的预览窗口中显示该 Portlet。在搜索字段中键入拼写错误的单词,如 Creatar,然后单击 "Spell"。结果页将显示正确的拼写,类似下图。
图 4:GoogleSearch 拼写结果 |
执行其他的 Portlet 操作
执行与本教程所述内容类似的步骤,在 Portlet 中使用 Google Web 服务搜索结果。
另请参见:
此页的最新修改时间:2006 年 1 月 25 日
|