本教程提供了 Sun Java Studio Creator 集成开发环境 (Integrated Development Environment, IDE) 的快速导览,并且还介绍了如何使用 IDE 完成 Web 应用程序开发的典型阶段。
由于本教程的设计使然,您不必按任何特定的顺序来学完它。您可以快速浏览本教程,然后在时间允许时返回学习各个部分。 |
|
目录
|
![[spacer]](/im/a.gif) |
 |
启动项目
项目相当于 Web 应用程序的工作环境。当您在 IDE 中创建项目时,IDE 会生成所支持的目录结构,该结构符合 Web 应用程序的 标准目录布局。此外,IDE 还创建用于生成并部署应用程序的目录。
通过从主菜单中选择“文件”>“新建项目”,可以创建项目。
试试看
使用适当的步骤启动 IDE:
- Windows。双击 Creator 桌面图标。
- Mac。双击安装文件夹中的 Creator 图标。
- Solaris 操作系统(SPARC 和 x86 平台版本)和 Linux。转至 install-directory
/sun/Creator2_1/bin 目录,键入 ./creator,然后按 Enter 键。请注意,如果您安装的是 Sun Java Studio Creator 2,而不是 Sun Java Studio Creator 2 Update 1,则 bin 目录位于 Creator2 下。
通过从主菜单中选择“文件”>“新建项目”来创建一个项目。请注意,缺省项目类型为 Web 应用程序,然后单击“下一步”。单击“完成”接受缺省的项目名称和位置。缺省情况下,IDE 将在 home 目录下创建项目目录 Creator/Projects/web-application-name。要更改缺省位置,请参见帮助主题“设置项目文件的位置”。
浏览“项目”窗口,该窗口如下图所示。“项目”窗口按类别对各项进行分组。逐个展开节点,查看各类别中有哪些类型的项。请注意“请求 Bean”、“会话 Bean”和“应用程序 Bean”节点旁边的标记。这些标记表明文件需要编译。IDE 在您生成项目时自动编译这些文件。
图 1:“项目”窗口 |
“Web 页”节点的下方是 "Page1.jsp" 节点。缺省情况下,IDE 会创建此页并将其作为起始页。该节点旁边的箭头标记用于标识该页为起始页。如果要将其他页用作起始页,请右键单击该页的节点,然后从弹出式菜单中选择“设置为起始页”。
单击“文件”标题,或者从主菜单中选择“视图”>“文件”以使“文件”窗口置于前端。此窗口按各项的物理存储对其进行组织。展开节点可查看结构。将鼠标悬停在节点和子节点上可看到工具提示。
图 2:“文件”窗口 |
在图 2 中,请注意 "WebApplication1" > "src" > "webapplication1" > "Page1.java" 节点。此 Java 类是 Page1.jsp 文件的支持 Bean。每当您将页面添加到项目时,IDE 都会为该页创建 .jsp 文件和 .java 文件。在下一部分中,您将了解有关 .jsp 和 .java 文件的更多信息。
更多信息
- 从主菜单中选择“帮助”>“帮助内容”>“从项目开始”>“关于项目”。
创建 Web 页
JavaServer Pages (JSP) Web 应用程序使用 JSP 页和页面 Bean(也称为支持 Bean)而不是 HTML 页。当您使用 IDE 添加 Web 页时,IDE 将同时创建 JSP 文件和 Java 源文件。通常使用可视设计器和“属性”窗口来开发 Web 页。IDE 可修改 JSP 代码和 Java 代码以实现您所设计的内容。大部分的工作都可以在可视设计器中完成。
在“项目”窗口中,右键单击“Web 页”节点,然后选择“新建”>“页”,如下图所示。
图 3:右键单击“Web 页”节点 |
将页面命名为 Page2,然后单击“完成”。IDE 将在可视编辑器(位于编辑区域)中打开 Page2。
图 4:可视设计器 |
单击编辑工具栏中的 "Java" 按钮以查看页面 Bean 的源代码,如下图所示。当编辑区域显示 Java 源代码时,“导航”窗口将出现在左下角中。此窗口列出了所有的成员字段和方法。请注意,页面的源代码具有访问应用程序 Bean、会话 Bean 和请求 Bean 的方法。有关这三种类型的 Bean 的说明,请参见本教程的 存储和传递数据部分。
源代码还具有在某些生命周期事件过程中调用的方法,这些事件发生在请求页面之后、完成页面呈现之前的一段时间内。
图 5:页面 Bean 的 Java 源代码 |
提示。在“导航”窗口中双击一个成员,插入点将定位在编辑区域中该成员声明的源代码上。您还可以在“导航”窗口中单击鼠标,然后开始键入成员名称的前几个字符以弹出“快速搜索”对话框。继续键入,直到 IDE 突出显示列表中的所需条目,然后按 Enter 键以定位到匹配成员声明的源代码,如下图所示。
图 6:“导航”窗口中的“快速搜索” |
单击编辑工具栏中的 "JSP" 按钮以查看页面的 JSP 代码,如下图所示。
图 7:JSP 视图 |
单击编辑工具栏中的“设计”,以切换到可视设计器并在“概要”窗口中显示页面的表示形式,如下图所示。请注意 JSP 文件中的标记如何在“概要”窗口中表示为节点。
图 8:“概要”窗口 |
更多信息
将组件添加到 Web 页
通过将组件从“组件面板”窗口的“组件”标签拖放到可视设计器中的 Web 页上,设计一个 Web 页。下图显示了 Page2,其中包含“按钮”、“日历”、“文本字段”、“消息”、“下拉列表”和“单选按钮组”组件。所有这些组件都可以从组件面板的“基本”类别中获得,并且已经通过更改这些组件的属性对它们进行了定制。您可以在本部分的后面部分中了解到有关属性的信息。
图 9:可视设计器中的组件 |
您使用的大多数组件都位于“组件面板”窗口的“基本”、“布局”和“组合”类别中。以下各表显示了一些最常用的组件。
输入组件
| 组件 |
描述 |
组件面板类别 |
| 文本字段 |
单行文本的输入字段。 |
基本 |
| 文本区域 |
多行输入字段。 |
基本 |
| 口令字段 |
将输入字符回显为替换字符以屏蔽输入内容的输入字段。 |
基本 |
| 日历 |
具有一个弹出式日历的输入字段,用户可以从该弹出式日历中选择日期。 |
基本 |
| 下拉列表 |
下拉菜单,也称为组合框。 |
基本 |
| 列表框 |
用户可以从中选择一项或多项的列表,项选择的多少取决于组件的配置方式。 |
基本 |
| 复选框 |
单字符框,用户可以选中或取消选中它。 |
基本 |
| 单选按钮 |
用户可以选中的单个单选按钮。 |
基本 |
| 添加删除列表 |
包含两个列表框(一个显示可用选项,另一个显示选定选项)以及一些按钮,这些按钮用于在列表间移动选项以及(可选)对选定选项进行排序。
| 组合 |
| 文件上载 |
该组件具有一个文本输入字段和一个“浏览”按钮(显示一个用于指定要上载的文件的文件选择器)。当用户提交页时,应用程序将上载指定的文件。
| 基本 |
显示组件
| 组件 |
描述 |
组件面板类别 |
| 静态文本 |
用于显示文本的字段。 |
基本 |
| 标签 |
可以与输入字段关联以及可以为其指定弱、中或强字体样式的文本字段。 |
基本 |
| 图像 |
内联图像。 |
基本 |
| 消息 |
链接到特定组件以显示有关该组件的验证错误和其他消息的文本字段。 |
基本 |
| 消息组 |
用于显示运行时错误消息、程序生成的错误消息以及(可选)有关页面上组件的验证错误和其他消息的文本字段。 |
基本 |
| 警报 |
显示一个图标以及信息性文本(如警告、错误或某个事件已成功完成)。
|
组合 |
| 页面警报 |
与“警报”组件类似,但是用于在单独的页面上显示图标和信息。
|
布局 |
组合组件
| 组件 |
描述 |
组件面板类别 |
| 复选框组 |
在网格布局中显示两个或两个以上的复选框。 |
基本 |
| 单选按钮组 |
在网格布局中显示两个或两个以上的单选按钮,并确保一次只能选中一个按钮。 |
基本 |
| 表 |
用于显示复合数据类型的数据,如数据库表或数组。 |
基本 |
| 树和树节点 |
以树状结构呈现可展开的列表。 |
基本 |
| 标签集和标签 |
用于在同一页上显示不同布局或者用作导航工具。 |
布局 |
| 网格面板 |
用于在行和列的布局内组织组件。 |
布局 |
| 组面板 |
用于以流布局模式组合一组组件。 |
布局 |
| 布局面板 |
用于以流布局模式或网格布局模式组合一组组件。 |
布局 |
| 属性表单 |
用于快速布置单列带标签的组件,并(可选)将组件分到各部分中。 |
布局 |
| Breadcrumbs |
用于布置一系列由右尖括号 (>) 分隔的链接组件。 |
组合 |
| 页面片段框 |
用于组合要在两页或两页以上的页上一致显示的组件。 |
布局 |
操作组件
| 组件 |
描述 |
组件面板类别 |
| 按钮 |
用于提交关联表单的按钮。 |
基本 |
| 超级链接 |
用于提交 URL 或提交表单的文本字段。 |
基本 |
| 图像超级链接 |
用于提交 URL 或提交表单的图像。 |
基本 |
| 树节点 |
树或树节点的子组件。树节点也可以提交 URL 或提交表单。
|
基本 |
| 标签 |
标签集或标签的子组件。标签也可以提交 URL 或提交表单。 |
组合 |
使用“属性”窗口中组件的属性表单,可以更改组件的外观和行为,将组件绑定到数据,以及将组件与事件处理程序关联。
下图显示了“列表框”组件的属性表单。
图 10:“属性”窗口中列表框的属性表单 |
试试看
创建一个名为 Page2 的新页,或者重用“创建 Web 页”部分中的按照 试试看建议创建的页。
从“组件面板”窗口的“基本”类别和“布局”类别中拖动各种组件,并试用其属性。例如,尝试执行以下步骤:
- 将一个“按钮”组件拖动到该页面上,键入
Click Me!,然后按 Enter 键。在“属性”窗口中,请注意其 text 属性如何具有值 Click Me!。另请注意 text 属性名称如何以粗体显示。以粗体显示的属性名称表明该属性的值已从其缺省值进行了更改。在“属性”窗口中,选中 primary 属性的复选框,并注意按钮的外观如何变化。
- 将一个“日历”组件拖放到该页面上,并将其
label 属性设置为 Expiration Date:。
- 将一个“文本字段”组件拖动到该页面上。接下来,将一个“标签”组件也拖动到该页面上,键入
Name:,然后按 Enter 键。按住 Ctrl-Shift 组合键在“标签”组件内部单击鼠标,并拖动一条连线到“文本字段”组件。请注意现在“标签”组件的 for 属性如何被设置为“文本字段”组件的 id 属性。将 labelLevel 属性设置为“强 (1)”。
- 将一个“消息”组件拖动到“文本字段”组件的右侧。按住 Ctrl-Shift 组合键,同时从“消息”组件拖动一条连线到“文本字段”组件。与“标签”组件一样,请注意现在“消息”组件的
for 属性如何被设置为“文本字段”组件的 id 属性。
- 将一个“下拉列表”组件拖动到该页面上,并将其
label 属性设置为 Color。右键单击“下拉列表”组件,然后选择“配置缺省选项”以显示“选项定制器”。在“显示”列中三击“项 1”,并键入 Blue。使用类似的步骤,将“项 2”更改为 White,将“项 3”更改为 Green。单击“确定”,并请注意您的更改如何影响可视设计器中的组件。
- 使用与“下拉列表”组件类似的步骤,创建一个具有选项 Blue、White 和 Red 的“单选按钮组”组件。
此外,在“选项定制器”中选中“选择项”复选框,并在“选定”列中选中其中一个单选按钮,以设置其缺省选项。单击“确定”应用更改并关闭“选项定制器”。在“属性”窗口中,将 columns 属性设置为 3 以使单选按钮水平对齐而不是垂直对齐。
- 右键单击该页面中的空白处,然后选择“在浏览器中预览”以查看您的浏览器如何呈现组件。
更多信息
获取有关 IDE 的帮助
IDE 包含的帮助主题提供了有关 IDE 和捆绑组件的信息。通过从主菜单中选择“帮助”>“帮助内容”,可以访问帮助主题。
在 IDE 内选择项时,“动态帮助”窗口将显示相关主题的列表。在窗口、对话框或组件面板中的组件上按 F1 键时,将出现“帮助”查看器,并显示有关该项的信息。
试试看
-
创建一个页面,该页面包含一个“文本字段”组件和一个“下拉列表”组件。选择“文本字段”组件。请注意“动态帮助”窗口中的主题。
- 选择“下拉列表”组件。请注意“动态帮助”窗口中的新主题。
-
在“动态帮助”窗口中,双击“下拉列表组件”节点以在“帮助”查看器中查看主题。关闭“帮助”查看器。
-
在“下拉列表”组件的“属性”窗口中单击鼠标。按 F1 键查看有关“下拉列表”组件属性的主题。
-
在组件面板的“基本”类别中选择“文本字段”组件节点。按 F1 键查看有关“文本字段”组件的帮助主题。
生成并测试 Web 应用程序
在准备试运行项目时,按 Ctrl-F5 组合键或单击“运行主项目”按钮,IDE 将执行以下操作:
- 保存需要保存的任何文件。
- 编译需要编译的任何文件。
如果存在任何复杂问题,IDE 将在“输出”窗口(如下所示)中显示相关的错误消息,而不会继续执行“生成并运行”过程。单击错误消息中的链接可转至导致编译错误的源代码。
- 如果尚未启动应用服务器,则将启动它。
- 将应用程序部署到应用服务器上。
如果存在任何复杂问题,IDE 将在“输出”窗口中显示相关的错误消息,而不会继续执行“生成并运行”过程。
- 打开浏览器,将已部署的应用程序的 URL 发送到浏览器,并由浏览器来显示起始页。
图 11:“输出”窗口 |
如果进行了大量更改,删除了若干项,或者出现一些异常行为,则可以从主菜单中选择“生成”>“清理并生成主项目”。IDE 将清理项目的 build 目录和 dist 目录,取消部署 Web 应用程序,然后生成并部署应用程序。
试试看
- 在可视设计器中打开一个页面,或者通过右键单击“项目”窗口中的“Web 页”节点,然后选择“新建”>“页”来创建一个新页面。如果“项目”窗口中的页面节点未显示起始页标记(一个绿色箭头),请右键单击页面的节点,然后从弹出式菜单中选择“设置为起始页”。将一个“超级链接”组件拖动到页面上,键入
Next Page,然后按 Enter 键。在“超级链接”组件的“属性”窗口中,将 url 属性设置为 /faces/Page2.jsp。
- 创建一个名为 Page2 的页(如果不存在该页)。
- 按 Ctrl-F5 组合键生成并运行 Web 应用程序,然后查看出现在“输出”窗口中的消息。此外,还请查看 IDE 发送到浏览器的 URL。
- 当浏览器中出现起始页时,单击 "Next Page" 链接。如果重用在“将组件添加到 Web 页”部分中创建的页,则可以试用在前面添加的组件。
- 在“服务器”窗口中,展开“部署服务器”,再展开“已部署的组件”,并请注意,您的项目有一个对应的节点。
- 右键单击“部署服务器”节点,然后从弹出式菜单中选择“查看服务器日志”。按 Ctrl-F5 组合键运行应用程序。服务器日志将出现在“输出”窗口中。您可能必须单击“输出”窗口的标题栏,才能将该窗口置于前端。使用
log(String) 方法可以将消息发送到服务器日志。
图 12:已部署的组件 |
更多信息
- 从主菜单中选择“帮助”>“帮助内容”>“从项目开始”>“生成项目”>“生成项目”。
- 从主菜单中选择“帮助”>“帮助内容”>“部署应用程序”>“关于部署”。
链接 Web 页和处理用户操作
当用户键入 URL、单击链接或单击按钮时,浏览器会将请求发送给服务器。服务器将该请求映射到 JSP 页,并使用此 JSP 页及其关联的页面 Bean 来呈现响应。
您可以使用以下两种方法之一来指定页面导航:
- 将一个“链接”组件(如“超级链接”组件、“树节点”组件或“标签”组件)添加到页面,并将其 URL 属性设置为
/faces/page-name.jsp。
注意:“树节点”组件必须嵌套在“树”组件或“树节点”组件内。“标签”组件必须嵌套在“标签集”组件或“标签”组件内。
- 您可以使用页面导航编辑器将操作映射到页,并使用可视编辑器和 Java 源代码编辑器来创建操作处理方法。
要访问页面导航编辑器,请在可视设计器中右键单击页面中的空白处,然后选择“页面导航”。页面导航编辑器将显示项目中的所有页面。在页面导航编辑器中单击某个页面时,将展开该页面,并显示其所有操作组件。(操作组件是具有 action 属性的组件,如“按钮”、“超级链接”或“标签”组件。)从操作组件拖动一条连线到页面,可以创建该操作的请求和要呈现为响应的页面之间的映射,如下图所示。
图 13:页面导航编辑器 |
试试看
- 创建两个页面,并将它们分别命名为 LinkPage1 和 LinkPage2。将 LinkPage1 作为起始页。
-
将一个“超级链接”组件拖动到 LinkPage1 上,键入
Next Page,然后按 Enter 键。
- 将一个“按钮”组件拖动到 LinkPage2 上,键入
Go,然后按 Enter 键。
- 双击“按钮”组件以获得按钮的 action 方法。请注意,action 方法将返回 null。当 action 方法返回 null 时,应用程序将重新显示页面。
- 单击编辑区域中的“设计”以切换到可视设计器。
- 在可视设计器中,右键单击 LinkPage2 中的空白处,然后选择“页面导航”。在页面导航编辑器中,单击 LinkPage1.jsp 的图标以展开该页的图标。从 LinkPage1.jsp 中的 hyperlink1 拖动一条连线到 LinkPage2.jsp 以创建链接,键入
nextPage,然后按 Enter 键。请注意该链接如何被命名为 nextPage。在“属性”窗口中查看该链接的源视图、目标视图和结果属性。
- 使用类似的步骤,创建一个从 LinkPage2.jsp 上的按钮返回到 LinkPage1.jsp 的链接,并将该链接命名为
go。
- 单击编辑工具栏中的“源”按钮,以查看部署到服务器的实际映射 XML,然后关闭页面导航编辑器。在询问您是否保存更改时,单击“保存”。
- 在 LinkPage2 中,双击“按钮”组件以获得按钮的 action 方法。请注意,现在 action 方法将返回字符串 "go",即返回
结果属性的值。在页面导航编辑器中创建的映射指示服务器在 LinkPage2.jsp 返回 "go" 时显示 LinkPage1.jsp。
- 按 Ctrl-F5 组合键运行应用程序,然后尝试使用新的页面链接。
更多信息
编辑 Java 代码
IDE 的 Java 编辑器包含用于简化编程过程的各种功能,其功能远不止在本介绍性教程中所讨论的这些。下面的编辑功能示例列表仅仅是其中的一小部分。
- 代码完成。通过代码完成,您可以键入几个字符,然后从可能的类、方法、变量等列表中进行选择以自动完成表达式。要显示代码完成框,请按 Ctrl-空格键。在紧跟包名称、变量或方法调用键入句点后暂停时,也会出现代码完成框,如下图所示。
图 14:代码完成框 |
- Javadoc。代码完成功能还显示相关的 Javadoc(如果存在)。此外,您可以右键单击类型、字段或方法,然后选择“显示 Javadoc”以查看该项的 Javadoc,也可以按 Shift-F1 组合键以显示 Javadoc 索引搜索工具。一些更常用的 Javadoc API 引用可以从“动态帮助”窗口中获得。
- 修复导入。 按 Alt-Shift-F 组合键可自动添加必要的 import 语句。
- 错误检测。在不能编译的所有语句的左旁注处都将出现红色的错误框。将鼠标悬停在该错误框上可看到错误描述,如下图所示。编译文件时,所有编译错误都将出现在“输出”窗口中。单击错误消息可在 Java 编辑器中显示错误代码。
图 15:错误检测 |
- Java 编辑器快捷键。使用简单的键组合可以调用许多常见的编辑任务,如以下示例所示。要了解有关快捷键的更多信息,请从主菜单中选择“帮助”>“帮助内容”>“简介和安装”>“快捷键”>“编辑器快捷键”。
重新设置代码格式 |
Ctrl-Shift-F |
删除当前行 |
Ctrl-E |
将插入点移动到匹配的方括号 |
Ctrl-[ |
选择位于光标左侧的方括号所包含的块 |
Ctrl-Shift-[ |
词语匹配:向下和向上 |
Ctrl-L、Ctrl-K |
- 缩写。缩写是在按空格键时展开为完整的词或短语的简短字符组,如以下示例所示。要查看完整的缩写列表,请选择“工具”>“选项”>“编辑”>“编辑器设置”>“Java 编辑器”。单击“缩写”属性的省略号 (
...) 按钮。
for (int i = 0; i < |.length; i++) {} |
fora |
for (Iterator i = |.iterator; i.hasNext();) { Object o = (Object)i.next();} |
fori |
try {|} catch (Exception ex) {log("Error Description", ex); } finally {} |
trcf |
- 代码片段。 “组件面板”窗口的“代码片段”标签包含许多有用的代码片段,您可以将这些代码片段拖放到源文件上。
- 自动注释工具。 选择“工具”>“自动注释”可打开用于添加 Javadoc 注释的对话框。
- 快速搜索。如上所述,在“导航”窗口中单击并开始键入方法或字段的名称,将出现“快速搜索”对话框,并且 IDE 会突出显示列表中的第一个匹配条目。按 Enter 键可在 Java 源代码中定位该条目的声明。
试试看
注意:以下练习要求您在 destroy 方法中键入代码。键入的代码是用来说明编辑功能的。通常,不需要在此方法中放置类似的代码。完成这些步骤后,请删除该代码。
- 创建一个页面或打开一个现有的页面。将一个“超级链接”组件拖放到该页面上。单击编辑工具栏中的 "Java" 以显示 Java 源代码。
- 在左旁注处单击鼠标右键,然后选择“显示行号”。在 Java 源代码中按 Ctrl-G 组合键,在“转至行”对话框中键入 50,然后按 Enter 键。在源代码中单击鼠标右键,然后从弹出式菜单中选择“转至”。请注意可以从子菜单中访问的操作。
- 在“导航”窗口中,双击
destroy() 以定位到该方法的源代码上。在 destroy() 方法中,键入 getSessionBean1().,然后暂停。将出现代码完成框。键入 d 可看到该框将列表缩小为 destroy()。按 Enter 键以使用该选择。键入 ;,然后按 Enter 键。现在键入 this.getH,按 Ctrl-空格键以打开代码完成框,将光标下移到 getHyperlink1(),然后按 Enter 键。键入句点,等待代码完成框出现,然后键入 set。在代码完成框将列表缩小为以 set 开头的所有方法后,键入 te 将列表缩小为 setText(Object text),然后按 Enter 键。IDE 将在句点之后插入 setText(text),并选中 text 一词。键入 "hello";,并请注意 IDE 如何将 text 替换为 "hello" 并在行尾放置分号。
- 开始一个新行,键入
serr,然后按空格键将该缩写展开为 System.err.println("")。删除行尾的分号。按 Shift-F9 组合键编译文件。“输出”窗口将显示几个指向错误的链接。单击该窗口中出现的第一个链接。IDE 将显示导致错误的语句。重新键入刚才删除的分号。
- 开始一个新行,键入
getSes,然后按 Ctrl-K 组合键。IDE 将该字符串替换为当前行上面的源代码中第一个匹配的单词。
- 要清除代码,请将光标放置在
destroy 方法主体中的第一行上,然后按 Ctrl-E 组合键删除该行。使用 Ctrl-E 组合键删除方法主体中的剩余行。
- 将鼠标悬停在编辑工具栏中的图标上,并尝试使用每个图标执行操作。
- 在 Java 源代码中单击鼠标右键,然后从弹出式窗口中选择“代码折叠”。尝试执行子菜单中的各种操作。
- 尝试从组件面板中拖动代码片段,以查看它们所提供的内容。
更多信息
- 使用 Java 编辑器
- 从主菜单中选择“帮助”>“帮助内容”>“使用 Java 源代码”>“在 Java 编辑器中查看和编辑代码”。
- 从主菜单中选择“帮助”>“帮助内容”>“简介和安装”>“快捷键”。
处理用户输入
IDE 提供了验证器和转换器对象,以帮助检查输入和设置格式。在组件面板中,可以从这些对象各自所在的类别中找到它们。
通过将验证器拖放到输入组件(如“文本字段”组件)上,可以将验证器绑定到输入组件。例如,将一个“文本字段”组件添加到可视设计器中的页面上后,可以将一个“长度验证器”组件从组件面板的“验证器”类别拖放到该“文本字段”组件上。
或者,也可以将验证器拖放到页面上,然后将输入组件的 validator 属性设置为该验证器对象。例如,您可以将一个“长型范围验证器”组件拖放到页面上的空白处,这样会将 longRangeValidator1 添加到“概要”窗口。然后,您可以在可视设计器中选择一个输入组件(如“文本字段”组件),再从其 validator 属性的下拉列表中选择 longRangeValidator1。通过此方法,可以将同一验证器用于多个组件。
此机制同样适用于转换器。您还可以将转换器与输出组件(如“静态文本”组件)关联。
使用验证器的“属性”窗口可以设置验证规则,如最小值和最大值,或最小长度和最大长度。同样,使用转换器的“属性”窗口可以设置转换规则,如值应该匹配的模式或进行验证而要调用的方法。“数值转换器”组件具有一个特殊向导,当您第一次将“数值转换器”组件拖放到页面上或可视组件上时将出现该向导。
组件面板的“基本”类别提供了“消息”组件和“消息组”组件,这些组件用于自动显示转换错误、验证错误和必填字段消息。“消息组”组件显示全局错误消息和(可选)所有组件错误消息。“消息”组件仅显示它所绑定到的组件的消息。将“消息”组件绑定到其他组件有两种方法:设置“消息”组件的 for 属性,或者在“消息”组件上按 Ctrl-Shift 组合键,然后将鼠标拖动到要将“消息”组件绑定到的组件。
通过在任何页面 Bean 中使用 error、warn、fatal 和 info 方法,可以用编程方式将定制错误消息发送到“消息组”组件。要了解这些方法的更多信息,请参见 FacesBean 类的“应用程序模型引用”中的条目。要查看 FacesBean 类的 API,请在“动态帮助”窗口中展开“Javadoc API 引用”,双击“应用程序模型引用”,然后在“所有类”列表中单击 "FacesBean"。
试试看
- 创建一个页面,并将一个“按钮”组件拖动到该页面上。将“按钮”组件的 text 属性设置为
Go。
- 将一个“文本字段”组件拖动到该页面上。在“文本字段”组件的“属性”窗口中,选中
required 属性的复选框。
- 将一个“标签”组件拖放到“文本字段”组件的上方,键入
Price:,然后按 Enter 键。
- 在“标签”组件的“属性”窗口中,从
for 属性的下拉列表中选择 "textField1"。请注意可视设计器中的“标签”组件如何显示一个星号以指示其关联的“文本字段”组件是必需要输入的。
- 在组件面板中,展开“验证器”类别。将一个“双精度范围验证器”组件拖放到“文本字段”组件上。在“概要”窗口中,选择新创建的 "doubleRangeValidator1" 节点。在验证器的“属性”窗口中,将其 maximum 属性设置为
10.0,并将其 minimum 属性设置为 1.0,如下图所示。
图 16:双精度范围验证器属性 |
- 在组件面板中,展开“转换器”类别。将一个“数值转换器”组件拖放到“文本字段”组件上。将出现“数字格式”对话框。从“类型”下拉列表中选择“货币”,从“语言环境”下拉列表中选择“英文 (美国)”,然后单击“确定”。
图 17:数字格式 |
- 将一个“消息”组件添加到页面。按住 Ctrl-Shift 组合键,同时从此组件拖动一条连线到“文本字段”组件。
- 将一个“消息组”组件添加到页面。
- 将该页设置为起始页,然后运行应用程序。在文本字段中键入
$1.50,然后单击按钮。尝试在下列情况下单击按钮:在 price 字段中未输入任何价格、输入的价格大于 $10.00、输入 1.5 以及输入非数字值。
请注意应用程序如何接受符合数字格式的值以及拒绝所有其他值。请注意在“消息”和“消息组”组件中出现的不同消息。
- 请尝试设置“消息组”组件的
showGlobalOnly 复选框。
更多信息
存储和传递数据
可以使用应用程序 Bean、会话 Bean 和请求 Bean 来存储信息以供其他页面使用。
- 可以使用应用程序 Bean 存储适用于所有用户会话的信息,如“下拉列表”组件的静态选项列表。
- 可以使用会话 Bean 存储在整个用户会话期间供其他页面使用的信息,如用户的登录名。
- 如果只需要供下一个页面使用的信息,则使用请求 Bean。(不能在 Portlet 中使用请求 Bean。)
请求结束后,在请求 Bean 中存储的任何值都会消失。请求是指从客户端单向传输到服务器的 HTTP 请求以及对应的响应(可以是其他页面)。在大多数情况下,请求都以单击按钮或链接开始,并以呈现 HTML 页作为响应结束。
注意:仅当启动请求的页面在请求 Bean 属性中存储值时(如将输入组件绑定到请求 Bean 属性时,如下所述),才会实例化请求 Bean。
警告:如果将 <redirect> 元素包括在导航规则的 <navigation-case> 元素中,则不能使用请求 Bean。(在页面导航编辑器中单击“源”按钮时,可以看到这些规则。)在提交页面时,<redirect> 元素会重定向该页面并结束请求,然后后续的页面才能使用请求 Bean 中存储的任何值。
要向会话 Bean 添加属性,请右键单击“项目”窗口中的“会话 Bean”节点,然后选择“添加”>“属性”。也可以使用类似的步骤向请求 Bean 或应用程序 Bean 添加属性。
提示:如果在编写代码时正确地使用了新属性,但发生语法错误,请编译属性所在的类,以便使 IDE 的其他部分知道存在该属性。例如,如果新属性位于会话 Bean 中,请右键单击“项目”窗口中的“会话 Bean”节点,然后从弹出式菜单中选择“编译文件”。
要将组件与 Bean 的属性关联,请右键单击该组件,然后选择“绑定到数据”。在“绑定到数据”对话框中,选择“绑定到对象”标签,然后选择 Bean 的属性,如下图所示。
图 18:“绑定到数据”对话框 |
试试看
- 右键单击“项目”窗口中的“请求 Bean”节点,然后选择“添加”>“属性”。将属性命名为
parm,并将其类型设置为 String,然后单击“确定”。
- 创建一个名为 First 的页面,其中包含一个“按钮”组件和一个“文本字段”组件。
- 右键单击“文本字段”组件,然后从弹出式菜单中选择“绑定到数据”。单击“绑定到对象”标签,选择 "RequestBean1" > "parm",然后单击“确定”。
- 创建一个名为 Next 的页面。添加一个“按钮”组件和一个“静态文本”组件。
- 使用与 First 页上的“文本字段”组件相同的步骤,将 Next 页上的“静态文本”组件绑定到 "RequestBean1" > "parm"。
- 使用页面导航工具,创建一个从 First 页上的“按钮”组件到 Next 页的链接。不用考虑 Next 页上的“按钮”组件,因为仅希望此按钮能使 Next 页重新呈现自身。
- 将 First.jsp 设置为起始页,然后运行应用程序。输入一个值,然后单击按钮。请注意,Next 页将显示您在 First 页上输入的值。在后台,一个 RequestBean1 的实例被实例化,用于在 parm 属性中存储“文本字段”组件的值。随后为响应(Next 页的 HTML)检索该 parm 属性的值。呈现响应后,RequestBean1 实例会被销毁。
- 单击 Next 页上的按钮可使 Next 页重新呈现自身。请注意“静态文本”组件如何不再显示值。这是因为保存值的 RequestBean1 实例存在的时间仅与请求时间一样长,该请求在提交 First 页时开始,在将 Next 页的 HTML 发回客户端时结束。
更多信息
连接到数据库
“服务器”窗口中包含一个“数据源”节点,该节点用于显示已添加到 IDE 的所有数据源,如下图所示。Java Studio Creator IDE 附带嵌入式数据库管理系统 (Database Management System, DBMS),该系统中预填充了样例模型。
图 19:数据源 |
通过右键单击“服务器”窗口中的“数据源”节点,然后从弹出式菜单中选择“添加数据源”,可以将数据源添加到 IDE。这时将出现“添加数据源”对话框,您可以在该对话框中提供有关数据源的信息,如主机名、数据库名称、用户名和口令。添加数据源后,可以展开数据源的节点,然后展开“表”以访问模型的表。
通过将表从数据源部分拖放到页面上的组件或页面上,可以连接页面与数据库表。在您执行此操作时,IDE 会将数据提供器添加到页面,并将行集添加到 SessionBean1 类,如下图所示。在本部分的后面部分中,您将了解到如何通过一步将数据提供器添加到页面并将它绑定到组件。
图 20:数据提供器和行集 |
行集对象建立数据库连接、执行查询以及管理结果集。数据提供器对象提供一个公共接口,用于获取多种类型的复合数据,其中包括数据库表、Array 对象以及 Enterprise JavaBeans 对象。通常,仅在需要设置查询参数时才使用行集对象。在大多数情况下,请使用数据提供器对象获取和处理数据。
要将组件绑定到数据库,请右键单击该组件,然后选择“绑定到数据”。在“绑定到数据”对话框中,单击“绑定到数据提供器”标签以将其置于前端。“选择数据提供器”下拉列表中显示了页面的所有数据提供器,您可以从中选择要绑定到组件的数据提供器。要绑定到未在列表中列出的数据提供器,请单击“添加数据提供器”,然后从“添加数据提供器”对话框中选择相应的数据表。选择数据提供器后,选择要绑定到组件的相应数据列。对于一些组件(如“下拉列表”组件),您必须对“值字段”和“显示字段”都进行选择。
可以使用行集对象的查询编辑器定义 SQL 查询来检索数据,如下图所示。
图 21:查询编辑器 |
试试看
- 创建一个页面,将其作为起始页,并将一个“列表框”组件拖放到该页面上。
- 右键单击“列表框”组件,然后从弹出式窗口中选择“绑定到数据”。将“绑定到数据提供器”标签置于前端,然后单击“添加数据提供器”。在“添加数据提供器”对话框中,选择“数据源”> "Travel" >“表”> "TRIPTYPE",然后单击“添加”。
- 在“绑定到数据”对话框中,将“值字段”设置为 TRIPTYPE.TRIPTYPEID(缺省选择),并将“显示字段”设置为 TRIPTYPE.DESCRIPTION。单击“确定”。
- 运行应用程序以查看表中的数据如何填充到列表框。
- 在“概要”窗口中展开 "SessionBean1" 部分,然后双击 "triptypeRowSet" 节点以打开其查询编辑器。在网格面板的 DESCRIPTION 行中,从“排序类型”列的下拉列表中选择“升序”。关闭查询编辑器,然后再次运行程序。请注意各项现在是如何按字母顺序显示的。
- (可选)在页面 Java 源代码的
_init 方法中找到将数据提供器与行集关联的代码。缺省情况下,此方法处于折叠状态。要展开代码,请单击左旁注旁边的代码折叠框。
双击“项目”窗口中的“会话 Bean”节点,以打开会话 Bean 的 Java 源代码。查看会话 Bean 的 _init 方法,以了解行集代码如何实现查询。右键单击数据提供器和行集方法,然后从弹出式菜单中选择“显示 Javadoc”以查看有关方法用途的文档。
- (可选)双击“动态帮助”窗口中的“数据提供器引用”和“行集引用”,以查看完整的 JavaDoc。
更多信息
调试 Web 应用程序
IDE 具有一个可帮助您解决程序问题的内置调试器。您可以使用该调试器设置断点和监视、单步执行代码以及运行至光标所在的代码语句。
通过在 Java 编辑器的左旁注处单击鼠标,可以设置断点。通过右键单击变量或表达式,然后选择“新建监视”,可以设置监视。要运行该调试器,请从主菜单中选择“运行”>“调试主项目”或“运行”>“运行至光标”。
图 22:“调试器”窗口 |
提示:下面是一些其他的功能,您可以使用这些功能来诊断并解决问题:
- 使用 HTTP 监视器可以监视客户端-服务器通信并重新显示 HTTP 请求。当页面包含若干个输入字段,并且您希望在不必填写所有字段的情况下重新创建 HTTP 请求时,使用重新显示请求功能会很有帮助。
- 将一个“消息组”组件添加到页面,然后使用
error、warn、fatal 和 info 方法在组件中显示诊断消息。
- 在“服务器”窗口中,右键单击“部署服务器”节点,然后从弹出式菜单中选择“查看服务器日志”。您可以使用
log 方法将诊断消息发送到服务器日志。
试试看
- 创建或重用一个起始页。添加一个“静态文本”组件,将其
text 属性设置为 Hello,并将其 id 属性设置为 helloText。
- 添加一个“按钮”组件。双击该“按钮”组件以访问其 action 方法 (
button1_action),然后将方法的主体替换为以下代码:
| 代码样例 1:button1_action 方法 |
String oldString = (String) this.helloText.getText();
this.helloText.setText("Good Bye");
String newString = (String) this.helloText.getText();
return null;
|
- 右键单击
oldString,选择“新建监视”,然后单击“确定”。对 newString 执行相同的操作。在左旁注处单击鼠标,为方法主体中的第一个语句设置一个断点。
- 从主菜单中选择“运行”>“调试主项目”。
- 当 Web 浏览器中显示页面时,单击按钮。当调试器在
button1_action 方法内中断时,单击“调试器”窗口中的“监视”标签,以查看 newString 和 oldString 的当前值。
- 从主菜单中选择“运行”>“越过”,或者按 F10 键以运行至下一条语句。查看“监视”标签。再按两次 F10 键,然后观察“监视”标签中的“值”列。
- 查看“局部变量”和“调用栈”标签。
- 选择“运行”>“完成调试器会话”关闭调试器会话。
更多信息
- 使用调试器。
- “开发 Web 应用程序”中的监视应用程序部分。
- 从主菜单中选择“帮助”>“帮助内容”>“调试应用程序”。
小结
- 开发 Web 应用程序从创建项目开始。
- 通过从“项目”窗口中选择“Web 页”>“新建”>“页”,可以添加页面。
- 将组件从组件面板拖动到可视设计器中的页面上,可以设计该页面。
- 单击主工具栏中的“运行主项目”按钮,可以保存、生成、部署并运行应用程序。
- 使用页面导航编辑器可以指定页面导航。您还可以将链接组件添加到页面,并设置其
url 属性的值。(请注意,不能将 url 属性用于 Portlet 中的页面导航。)
- 将验证器和转换器对象拖放到组件上,可以指定格式设置和验证规则。
- 使用消息组件和消息组组件可以显示错误消息。
- 使用 RequestBean1、SessionBean1 和 ApplicationBean1 类中的属性,可以存储值以及在页面之间传递值。
- 使用以下方法之一,可以为数据库表创建数据提供器对象及其关联的行集:
- 右键单击组件并从弹出式菜单中选择“绑定到数据”,将“绑定到数据提供器”标签置于前端,单击“添加数据提供器”,然后选择数据表。
- 将表从“服务器”窗口的“数据源”部分拖动到页面或页面上的某个组件上,可以为表创建数据提供器对象和行集对象。
- 使用“绑定到数据”菜单操作,可以将组件绑定到数据提供器字段,以及将组件绑定到 Bean 属性。
- 打开行集的查询编辑器,可以修改用于填充行集对象的 SQL 查询。
- 使用调试器、HTTP 监视器、服务器日志和消息组组件可以诊断运行时问题。
更多的开发者资源:
此页的最新修改时间:2006 年 4 月 14 日
|