当前位置:主页   - 电脑 - 程序设计 - JAVA
NetBeans Visual Web JSF 应用程序开发入门
来源:网络   作者:   更新时间:2012-08-17
收藏此页】    【字号    】    【打印】    【关闭

  您不必以任何特殊的顺序阅读本教程。您可以快速浏览,然后在时间允许的时候返回各个章节。如果您更喜欢逐步渐进的教程,您也许首先要尝试 JSF Web 应用程序开发。

  本教程可用以下技术和资源运作

JavaServer Faces 组件/

  Java EE 平台

NetBeans Visual Web JSF 应用程序开发入门1.2 和 Java EE 5*

NetBeans Visual Web JSF 应用程序开发入门1.1 和 J2EE 1.4

Travel 数据库NetBeans Visual Web JSF 应用程序开发入门某些小节必需

  * 要发挥 NetBeans IDE 6.0 的 Java EE 5 性能的优势,请使用与 Java EE 5 规范完全兼容的应用服务器,例如 Sun Java System Application Server 9/GlassFish。

  本教程是为 GlassFish v2 应用程序服务器而定制的。如果您正在使用其他服务器,请参考发行说明和 FAQ 以了解已知的问题和变通的方法。

  开始一个项目

  项目相当于您的 web 应用程序的工作环境。当您在 NetBeans IDE 中新建一个 Visual Web JSF 应用程序项目并且您已经指定了 GlassFish V2 或者更新的版本,IDE 会创建一个使用 JavaServer Faces 1.2 组件的基于 Java EE 5 的 web 应用程序。默认情况下,这个 web 应用程序被创建在一个符合用于 web 应用程序的 Java BluePrints 项目规范的目录结构中。

  尝试

  使用以下列表中适当的步骤启动 IDE:

  Windows,Solaris 和 Linux。 双击 NetBeans 桌面图标。

  Mac。 在 MacOS 上,6.0 可执行程序被安装在 /Applications/NetBeans/ 目录下。双击该文件夹中的 NetBeans 图标。

  新建一个 Visual Web JSF 应用程序项目:

  从主菜单中选择“文件”>“新建项目”。

  在“新建项目”向导中,选择“Web”类别和“Web 应用程序”项目类型,并点击“下一步”。

  把项目命名为 GettingStarted。注意默认的项目位置。假如您喜欢,可以点击“浏览”并选择一个不同的位置。

  选择一个服务器和 Java EE 版本。

  例如,默认的服务器是 GlassFish V2,Java EE 5 是默认的 Java EE 版本。

  点击“下一步”。

  选择 Visual Web JavaServer Faces 框架并点击“完成”,在默认位置或者 c 步骤中选择的位置新建一个项目。

  IDE 在选择的(或默认的)项目文件夹中创建项目目录,并命名为与项目名称相同的名字。

  探索“项目”窗口。如下图所示,“项目”窗口按照类别将内容分组。展开各个节点来看看每个分类中都有哪些类型。

  图 1:“项目”窗口

NetBeans Visual Web JSF 应用程序开发入门

  在“Web 页”节点下是“Page1.jsp”节点。IDE 默认创建这个页面并将它设为起始页面。节点旁的箭头标记 NetBeans Visual Web JSF 应用程序开发入门标志了此页面是起始页面。如果您想使用不同的页面作为起始页面,右键点击那个页面的节点并在弹出菜单中选择“设置为起始页”。

  点击“文件”标签,或者从主菜单中选择“窗口”>“文件”,“文件”窗口将显示在前端。此窗口按照文件的物理存储组织它们。展开节点来看看目录结构。注意显示在“ApplicationBean1.java”节点旁边和它下面其它几个节点例如“Page1.java”节点旁边的 NetBeans Visual Web JSF 应用程序开发入门标记。此标记表示该文件需要被编译。当您生成项目时 IDE 会自动编译这些文件。

NetBeans Visual Web JSF 应用程序开发入门

  图 2:文件窗口

  在图 2 中,注意 GettingStarted > src > java > gettingstarted > Page1.java 节点。这个 Java 类r Page1.jsp 文件的辅助 bean。只要您向项目添加一个页面,IDE会同时为这个页面创建一个 .jsp 文件和一个 .java 文件。您将在下一节学习到更多关于 .jsp 和 .java 文件的内容。

  了解更多

  从主菜单中选择“帮助”>“帮助内容”来打开帮助文件。在左边的“目录”窗格中,选择“Web 应用程序”>“关于 Web 应用程序”>“使用 Web 应用程序”。

  创建 Web 页

  使用 Visual Web JSF 应用程序,您可以用 JavaServer Pages(JSP)技术和 page bean(也称为辅助 bean)替代 HTML 页面。JSP 页面是一个模板,它从服务器生成 HTML 响应被显示在浏览器(客户端)上。Page bean 包含了当服务器生成 HTML 响应时和当用户提交页面时执行的逻辑。

  当您在 Visual Web JSF 应用程序中添加一个 web 页时,IDE同时为您创建了一个 JSP 文件和一个 Java 源文件。您主要使用可视设计器和“属性”窗口来开发 web 页。IDE 修改 JSP 代码和 Java 代码来实现您的设计。您的大部分工作可以在可视设计器和“属性”窗口中完成。

  注意事项:IDE 生成的 JSP 页面是 JSP 文档。JSP 文档是一个 XML 文档,因此,必须是良好格式化的。虽然大部分 JSP 元素遵守 XML 语法,但还是有一些元素是不属于 XML 规范的,例如注释,声明,指令,表达式,和脚本。了解 JSP 文档语法,请参见 JavaServer Pages 语法参考。

  尝试

  在“项目”窗口中,右键单击“Web 页”节点,选择“新建”>“Visual Web JSF 页”,如下图所示。

NetBeans Visual Web JSF 应用程序开发入门

  图 3:右键点击“Web 页”节点

  接受默认的 Page2 作为文件名,点击“完成”按钮。IDE 将在编辑区域的可视设计器中打开 Page2,如下图所示。

NetBeans Visual Web JSF 应用程序开发入门

  图 4:可视设计器

  点击编辑工具栏的“Java”按钮查看 page bean 的源代码,如下图所示。当编辑区域显示 Java 源代码时,“导航”窗口列出了所有的成员字段和方法。注意,页面源代码中有用于访问 Application Bean,Session Bean,和 Request Bean 的方法。请参见本教程的存储和处理数据小节,查看这三种 bean 类型的说明。

NetBeans Visual Web JSF 应用程序开发入门

  图 5:Page Bean 的 Java 源代码

  源代码中还有在页面被请求和页面被绘制完成之间的某些生命周期事件中被调用的方法。

  提示:在“导航”窗口中双击一个成员,可以打开源代码编辑器并将光标定位到该成员被声明的地方。您还可以在“导航”窗口中点击任何一个地方,并输入一个成员名称的头几个字母,可以打开“快速搜索”对话框。继续输入直到 IDE 高亮显示出列表中您想要找到的项,如下图所示。然后您可以输入 Enter 键来打开源代码编辑器并将光标定位在匹配的成员声明处。

NetBeans Visual Web JSF 应用程序开发入门

  图 6:“导航”窗口中的快速搜索

  点击编辑工具栏的“JSP”按钮查看页面的 JSP 代码,如下图所示。注意 JSP 页面如何使用 JSP 文档语法。

NetBeans Visual Web JSF 应用程序开发入门

  图 7:JSP 视图

  点击编辑工具栏的“设计”按钮切换到可视设计器并在“导航”窗口中显示页面的表示。如果您打开“Page2”节点下的节点,您可以看到如下图所示的节点。注意 JSP 文件中的标签如何在“导航”窗口中被表示。

NetBeans Visual Web JSF 应用程序开发砻? /></p><p>  图 8:“导航”窗口</p><p>  了解更多</p><p>  从主菜单中选择“帮助”>“帮助内容”来打开帮助文件。在左边的“目录”窗格中,选择“Web 应用程序”>“创建 Web 应用程序”>“关于创建 Web 应用程序”。 </p><p>  JavaServer Pages 技术 - 文档 </p><p>  向 Web 页添加组件<p>  您可以通过从“组件面板”窗口将组件拖动到可视设计器中的 web 页面上来设计 web 页面。下图显示了添加了“按钮”,“文本字段”,“消息”,“下拉列表”,和“单选按钮组”组件的 Page2 页面。所有这些组件都是“基本”类别中可用的组件。这些组件是通过修改它们的属性被定制过的。您将在本节学习到关于组件的属性。</p><p><img src=

  图 9:可视设计器中的组件

  注意事项:“组件面板”中可用的组件是依照设计时 API 增强的 JavaServer Faces(JSF)组件,以便它们的属性可以在可视设计器和“属性”窗口中使用。您可以在 web 应用程序中使用您自己使用 IDE 生成的其它组件,但是您不能在这些组件上使用 IDE 交互式的设计时特性,除非它们是依照设计时 API 的需求定制的。如果 Java EE 版本被设置为 Java EE 5,“组件面板”将提供 JSF 1.2 的组件。如果您将 Java EE 的版本设置为 1.3 或 1.4,“组件面板”则提供 JSF 1.1 的组件。

  您用到的大部分组件在“组件面板”的“基本”,“布局”,和“复合”类别中。以下表格按照功能显示了一些常用的组件。

  表 1:输入组件

组件描述组件面板类别
文本字段一个单行文本输入字段。基本
文本区域一个多行文本输入字段。基本
下拉列表一个下拉菜单,也作为一个组合框被引用。基本
列表框一个根据配置,用户可以选择一个或多个选项的列表。基本
复选框一个用户可以选择(选中)或清除的单一符号框。基本
单选按钮一个用户可以选择(选中)的单个单选按钮。基本
口令字段一个将输入的字符回显为替换的字符以屏蔽输入内容的输入字段。基本
文件上载一个用于指定一个文件以便上载的组件,它由一个文本输入字段和一个用于显示文件选择器的“浏览”按钮组成。当用户提交这个页面时应用程序将上载指定的文件。基本
添加删除两个列表(一个用于显示可用选项,一个用于显示选定选项),它有两个按钮,用于在两个列表间移动选项和排序选定选项。复合
日历一个输入字段和可供选择日期的日历。基本

  表 2:显示组件

组件描述组件面板类别
标签可以与一个输入字段关联的文本域,可以为它指定一个弱的,适中的或者加强的字体样式。基本
静态文本用于显示文本的域。基本
图像内联图像。基本
消息链接到一个特定的组件以显示此组件的验证错误或其它消息的文本域。基本
消息组显示运行时的错误消息,程序生成的错误消息,和可选地,页面上的组件的验证错误和其它消息的文本域。基本
页面警报类似于“警报”组件(下一行),但它是在一个单独的页面中显示图标和信息的。布局
警报显P一个图标和信息文本,例如警告,错误,或者一些事件的成功完成。复合
隐藏字段一个可用于保留数据或向服务器传送信息的隐藏字段。基本
页面分隔符一个可调整大小以适合任何用户选择的页面宽度的水平线。布局
表单用于添加一个表单。布局
内联帮助在您的页面上提供内联的简短的帮助信息。复合

  表 3:分组组件

组件描述组件面板类别
复选框组在网格布局中显示两个或更多的复选框。基本
单选按钮组在一个网格布局中显示两个或多个单选按钮,并确保每次只能有一个按钮被选择。基本
表,表行组,和表列显示来自复合数据类型的数据,例如一个数据库表或者一个数组。基本
网格面板在一个多行多列的布局中组织组件。布局
组面板使用流式布局模式来组织一组组件。布局
布局面板用于使用流式布局模式或网格布局模式来组织一组组件。布局
标签集和标签显示一些页面上的不同布局。也可以当作一个导航工具来使用。布局
页面片段框组织两个或多个页面上您想要一致显示的组件。布局
属性表单,属性表单部分,和属性快速地在一个单独的列中勾画出带有标签的组件,并将组件分隔成几个区域。布局
Breadcrumbs显示一组用右尖括号(>)分隔的链接。复合

  表 4:动作组件

组件描述组件面板类别
按钮用于提交关联表单的按钮。基本
超级链接用于提交一个 URL 或者提交一个表单的文本字段。基本
图像超级链接用于提交一个 URL 或者提交一个表单的图像。基本
标签一个“标签集”组件或一个“标签”的子组件。可选地,标签可以用于提交一个 URL 或者一个表单。布局
常见任务一个连接到用户可以执行任务的 Visual web JSF 页面的链接。复合

  您可以使用“属性”窗口中的组件属性表来改变组件的外观和行为,将数据绑定到组件,将事件处理器关联到组件。

  下图显示了一个列表框组件的属性。

NetBeans Visual Web JSF 应用程序开发入门

  图 10:“属性”窗口中的列表框属性

  尝试

  打开您根据“创建 Web 页”小节的尝试建议所创建的 Page2 页面,或者根据需要创建它。

  从“组件面板”窗口中的“基本”类别和“布局”类别中拖放各种组件到页面上,并设置它们的属性。例如,尝试以下步骤:

  拖放一个“按钮”组件到页面上,输入 Click Me! 并按下 Enter 键。在“属性”窗口中,注意 text 属性的值变成了 Click Me!。在“属性”窗口中,选中 primary 属性的复选框并注意按钮外观的变化。

  重要注意事项:IE7 中有个已知的问题会影响 JSF 1.2 组件的宽度。工作区在一个布局组件(网格面板,组面板,布局面板)中放置“按钮”组件。调整布局组件的大小会自动地调整“按钮”组件的大小。

  拖放一个“文本字段”组件到页面上。然后拖放一个“标签”组件到页面上,输入 Name: 并按 Enter 键。按住 Ctrl-Shift 键,在“标签”组件中点击并拖放到“文本字段”组件,然后放开鼠标键。选中“标签”组件并请注意它的 for 属性现在被设置为“文本字段”的 id。设置 labelLevel 为 “强(1)”。

  拖放一个“消息”组件到“文本字段”的右边。按住 Control-Shift 键,从“消息”组件拖动到“文本字段”组件。如同“标签”组件,请注意“消息”组件的 for 属性现在被设置为“文本字段”组件的 id。

  拖放一个“下拉列表”组件到页面上并设置它的 label 属性为 Color。右键点击这个“下拉列表”组件并选择“配置缺省选项...”打开“选项定制器”窗口。

  按下 Tab 键进入“显示”列中的“项 1”的编辑模式,然后输入 Blue。按下 Tab 键两次并将“项 2”的值改为 White。按下 Tab 键两次并将“项 3”的值改为 Green。点击“确定”按钮并注意您的改变是如何影响了可视设计器中的组件。

  使用类似的步骤创建一个“单选按钮组”组件,选择项有 Blue,White,和 Red,但先别关闭“选项定制器”窗口。

  在“选项定制器”窗口中,选中“选择项”复选框,然后选中“选定”列中的一个单选按钮将它设置为默认选择项。点击“确定”按钮应用所作的改变并关闭“选项定制器”窗口。在“属性”窗口中,设置 columns 属性为 3,将单>按钮从垂直排列改变为水平排列。

  右键点击页面的背景,页面中任何空白的区域,然后选择“在浏览器中预览...”按钮,看看您的浏览器是如何呈现这些组件的。

  了解更多

  开发 Web 应用程序

  获得帮助

  IDE 提供了一个帮助窗口,它包含了关于 IDE <各种帮助主题。同时,当您在一个窗口,对话框,或者组件面板中按下 F1 键时,>助窗口便会出现并显示关于当前项的信息。访问 Visual Web JSF 包的帮助主题,包含了关于组件的帮助,您可以从主菜单中选择“帮助”>“帮助内容”并滚动到 Web 应用程序。

  尝试

  点击单选按钮组的属性窗口中的任意地方。按下 F1 键,查看关于单选按钮组组件属性的主题。

  选择“组件面板”的“基本”类别中的“文本字段”组件。按下 F1 键,查看关于文本字段组件的帮助主题。

  生成和测试 Web 应用程序

  当您准备测试一个项目时,按下 F6 键或者从主菜单中选择“运行”>“运行主项目”。IDE 将执行以下动作:

  保存所有需要保存的文件。

  编译所有需要被编译的文件。

  如果出现任何错误,IDE 将相关的错误消息显示在“输出”窗口(如下图所示)中,并停止 build-and-run 过程。点击错误消息的链接,将转到发生编译错误的源代码处。

  启动应用程序服务器,如果尚未启动。

  将应用程序布署到应用程序服务器。

  如果出现任何错误,IDE 将相关的错误消息显示在“输出”窗口中,并停止 build-and-run 过程。

  打开浏览器并将已布署的应用程序的 URL 发送到浏览器,显示起始页面。

  注意事项:如果您不是在起始页面上添加组件,在本教程此处您将无法在浏览器中看到它们。了解在您的应用程序中设置从起始页面到其它页面的导航的方法,参见接下来的“尝试”小节。

NetBeans Visual Web JSF 应用程序开发入门

  图 11:“输出”窗口

  如果您作了许多改动或删除了一些项,或者您看到一些意外的行为,您可以从主菜单中选择“生成”>“清理并生成主项目”。IDE 将清除项目的 build 文件夹和 dist 文件夹,取消布署这个 web 应用程序,然后重新生成并布署。

  尝试

  如果您的项目只有少于两个的页面,右键点击“项目”窗口中的“Web 页”节点,选择“新建”>“Visual Web JSF 页”来新建一个页面。

  打开可视设计器中的起始页(有箭头标记 NetBeans Visual Web JSF 应用程序开发入门 的页面)。

  拖放一个“超级链接”组件到起始页上,输入 Next Page,并按下 Enter 键。

  在“超级链接”组件的“属性”窗口中,点击 url 属性的省略符按钮 NetBeans Visual Web JSF 应用程序开发入门,选择项目中的一个不同的页面,并点击“确定”按钮。请注意 IDE 如何设置 url 属性为 /faces/page-name.jsp。

  按下 F6 按钮,生成并运行这个 web 应用程序。

  在生成过程中,请注意“输出”窗口中显示的消息。同时请注意显示在服务器的标签页上的服务器日志的输出。

  请注意 IDE 发送给浏览器的 URL。

  当起始页在浏览器中显示的时候,点击 Next Page 链接。

  返回 IDE,然后在“服务”窗口中展开“服务器”节点和相应服务器的节点,然后展开“应用程序”>“Web 应用程序”并注意有一个对应您的项目的节点,如下图所示。

NetBeans Visual Web JSF 应用程序开发入门

  图 12:已布署的 Web 应用程序

  了解更多

  从主菜单中选择“帮助”>“帮助内容”打开帮助窗口。然后在“目录”窗格中,选择“Web 应用程序”>“创建 Web 应用程序”>“关于创建 Web 应用程序”。

  连接 Web 页并处理用户 Action

  当用户输入一个 URL,点击一个超级链接,或者点击一个按钮时,浏览器会向服务器发送一个请求。服务器将请求映射到一个 JSP 页面并使用那个 JSP 页面和相关联的 page bean 来展现一个响应。

  您可以用一种或两种方>指定页面的导航:

  添加一个链接组件到页面上,例如超级链接组件,或者添加一个“树节点”组件到一个“树”组件,或者添加一个“标签”组件到“标签集”组件。然后将组件的url 属性设置为 /faces/page-name.jsp。当您使用 url 作为导航时,表单数据就不会提交。Web 应用程序简单地导航向目标地址。

  使用“页面流”编辑器映射页面的 action,使用可视设计器和 Java 源代码编辑器来创建 action 的处理方法。当您将 action 的处理方法用在页面导航时,表单数据被提交并在 web 应用程序导航向指定的目标地址前被处理。

  访问“页面流”编辑器,在可视设计器中右键点击页面的背景并选择“页面导航”。

  “页面流”编辑器显示项目中每个页面的页面图标 NetBeans Visual Web JSF 应用程序开发入门。当您点击“页面流”编辑器中页面图标的 + 元素时,图标将展开并显示所有的 action 组件,例如“按钮”,“超级链接”,或者“标签”这样有 action 属性的组件。每个组件的旁边是一个连接器端口。下图中超级链接的连接器端口看起来像一个链条,按钮的连接器看起来像一个箭头。您可以通过从连接器端口拖放一个页面的图标来建立 action 请求和用于呈现请求的响应页面之间的映射。当您释放鼠标时,IDE 为连接添加一个可视化的表示,如下图中的标签为“nextPage”的连接线所示。

NetBeans Visual Web JSF 应用程序开发入门

  图 13:页面流编辑器

  注意事项: 当页面被提交后,web 应用程序在执行 action 方法前先执行数据的转换和验证。如果转换或验证失败,action 的方法不会被调用。您应该在开发过程中在页面上放置一个“消息组”组件,这样您可以捕获任何意外的转换或验证失败以防止 action 方法被调用。

  尝试

  新建名为 LinkPage1 和 LinkPage2 的两个页面。右键点击 LinkPage1 并选择“设置为起始页”将它设置为起始页面。

  拖放一个“超级链接”组件到 LinkPage1 页面上,输入 Next Page,并按下 Enter 键。

  拖放一个“按钮”组件到 LinkPage2 页面上,输入 Go,并按下 Enter 键。

  双击“按钮”组件编辑按钮的 action 方法。

  请注意 action 方法返回为 null。如果 action 方法的返回为 null,应用程序将重新显示此页面。

  点击工具栏的“设计”按钮切换到可视设计器。

  在可视设计器中,右键点击 LinkPage2 页面的背景并选择“页面导航”。

  在“页面流”编辑器中 LinkPage1.jsp 的图标,展开页面的图标,然后从 hyperlink1 组件连接器端口拖放一个连接到 LinkPage2.jsp 的图标上。

  双击 case1 连接线标签转换到编辑模式,输入 nextPage 并按下 Enter 键。

  使用类似的步骤创建一个从 LinkPage2.jsp 的按钮返回到 LinkPage1.jsp 的连接线,并将连接线命名为 go。

  点击编辑工具栏中的“XML”按钮查看实际的部署到服务器的映射 XML,然后关闭“页面流”编辑器并在提示是否保存修改时点击“保存”。

  在 LinkPage2 页面中,双击“按钮”组件编辑它的 action 方法。

  请注意现在 action 方法返回一个“go”字符串。您在“页面流”编辑器中创建的映射通知服务器只要 LinkPage2.jsp 页面返回“go”便显示 LinkPage1.jsp。

  按下 F6 键运行应用程序并试验新的页面导航。

  了解更多

  在 Web 应用程序中导航页面

  打开“导航编辑器”并按 F1 键,或者从主菜单中选择“帮助”>“帮助内容”打开帮助窗口,然后在“目录”窗格中,选择“Web 应用程序” > “创建和编辑 Web 组件”>“页面”>“关于页面流编辑器”。

  编辑 Java 代码

  IDE 的 Java 编辑器包含了用以帮助程序开发过程的所有特性,远远多于本篇介绍性教程所能讨论的范围。如果您在 Java 编辑器中点击并按下 F1 键,您可以获得编辑器大部分特性的帮助。

  下列说明包含了编辑器中更为有用的特性中的几个。

  代码完成。代码完成允许您输入几个字母就可以从一个可选的类,方法,变量,等等的列表中选择以自动完成表达式。按下 Ctrl-Space 显示代码完成框。代码完成框同时也会在您停止输入了跟随在一个包名,变量,或方法调用的句点之后显示,如>图所示。

NetBeans Visual Web JSF 应用程序开发入门

  图 14:代码完成框

  Javadoc。代码完成特性同时也显示了任何相关的 Javadoc。另外,您可以右键点击一个类型,字段,或者方法,并选择“绞?Javadoc”来查看它的 Javadoc,,假如它的 Javadoc 可用。选择“帮助”>“Javadoc 引用”,查看可用的 Javadoc。您还可以按下 Shift-F1 键来显示“Javadoc 索引搜索”工具。

  修复导入。 按下 Ctrl-Shift-I 组合键自动添加必需的 import 语句。

  错误检测。显示在所有语句左边边框的红色的错误方框表示它将不能编译。鼠标停留在这个方框的上方时可以查看错误描述,如下图所示。IDE 同时在右边边框显示一个错误条。这个错误条表示了整个文件,而不仅仅是可见的代码行。错误条中红色的行标记了代码中的错误。双击一个红色的行,跳转到错误的语句。当您编译文件的时候,所有的错误将显示在“输入”窗口中。点击一个错误信息,将在 Java 编辑器中显示错误的代码行。

NetBeans Visual Web JSF 应用程序开发入门

  图 15:错误检测

  Java 编辑器键盘快捷键。您可以通过简单的组合键来调用许多常见的编辑任务,如下列范例所示。从主菜单中选择“帮助”>“帮助内容”,打开帮助窗口,然后在“目录”窗格中选择“IDE 基础知识”>“快捷键”>“常规编辑器快捷键”,学习更多关于快捷键的内容。

操作快捷键
格式化代码Alt-Shift-F
删除当前行Ctrl-E
将插入点移至突出显示的匹配方括号Ctrl-[
选择一对方括号之间的代码块Ctrl-Shift-[

  代码模板。代码模板是简短的字母组合,当您输入这些字母组合后按下空格键,它可以展开成完整的单词或短语,如下列范例所示。在 Microsoft Windows 系统上选择“工具”>“选项”,或者在 Macintosh 系统上选择“NetBeans”>“参数”,然后选择“基本选项”>“编辑器”>“代码模板”,并点击省略符 NetBeans Visual Web JSF 应用程序开发入门 按钮打开代码模板属性。一些范例:

代码模板缩写
for (Iterator it = collection.iterator(); it.hasNext();)

  {Object elem = (Object) it.next();}

forc
for (int i = 0; i < arr.length; i++) {}fori
try {|} catch (Exception ex)

  {log("Error Description", ex); } finally {}

trycatch

  代码片断。当您打开 Java 编辑器,“组件面板”窗口提供了许多有用的代码片断,您可以将它们拖放到您的源文件中。代码片断不会为受管 bean 显示,例如 application bean 或 request bean。

  注意事项:如果您在工具栏中点击“JSP”打开 JSP 编辑器,您可以在“组件面板”窗口中看到您可以在 JSP 文件中使用的“JavaScript”工具提示。

  快速搜索。当您在“导航”窗口中点击然后开始输入一个方法或者字段的名称,您可以看到一个“快速搜索”对话框,IDE 将高亮显示列表中第一个匹配的项。按下 Enter 键,在 Java 编辑器中定位到源代码的匹配项声明的地方。

  尝试

  注意事项:接下来练习您在 destroy 方法中输入代码。您输入的这些代码旨在举例说明编辑器的特性。您不能在正坏拇码录入时像在这个方法中这样。当您完成这些步骤,您应该删除这些代码?/p>

  新建一个页面或者打开一个已存在的页面。拖放一个“超级链接”组件到这个页面上。在编辑工具栏中点击“Java”,显示 Java 源代码。

  右键点击左边栏并选择“显示行号”。在 Java 源代码中按下 Ctrl-G 组合键,在“转至行”对话框中输入 100,并按下 Enter 键。

  点击“导航”窗口的标签,然后双击 destroy() 定位到源代码中的这个方法处。在 destroy() 方法中,输入 getSessionBean1(). 然后暂停输入。代码完成框将弹出。输入 d 将看到列表缩小到 destroy()方法。按下 Enter 键选择那个选项。按下 Ctrl-Space。现在输入 this.getH,然后暂停以弹出代码完成框,输入 set。在代码完成框列表缩小到所有以 set 开始的方法,输入 te 缩小列表到 setText(Object text) 然后按下 Enter 键。IDE 将在句点后插入 setText() 并将光标定位到参数列表。输入 "hello",按下 End 键,然后输入 ;。

  开始一个新行,输入 serr 并按下 Tab 键将缩写展开为 System.err.println("")。删除行尾的分号。按 F9 编译文件?ldquo;输出”窗口显示了几个错误的链接。点击窗口中显示的第一个链接。IDE 显示了发生错误的语句。重新补上您刚才删除的分号。

  开始一个新行,输入 getSes 并按下 Ctrl-K 组合键。IDE 从当前行之前的源代码中找到第一个匹配的单词并替换刚输入的字符。

  清除代码,将光标放置在 destroy 方法体的第一行并按下 Ctrl-E 组合键删除这一行。使用 Ctrl-E 组合键删除方法体中其余的行。

  将鼠标移动到编辑工具栏上,尝试每个功能。

  右键点击 Java 源代码并在弹出菜单中选择“代码折叠”。尝试子菜单中的各个不同的动作。

  尝试从“组件面板”中拖放代码片断以查看它们是怎么提供的。

  了解更多

  从主菜单中选择“帮助”>“帮助内容&rdquo;打开帮助窗口。然后在“目录”窗格中,选择“Java 应用程序”>“编辑 Java 源文件”>“关于编辑 Java 源文件”。

  从主菜单中选择“帮助”>“帮助内容”打开帮助窗口。然后在“目录”窗格中,选择“IDE 基础知识”>“快捷键”>“常规编辑器快捷键”。

  Java 编辑器用户指南 FAQ

  处理用户输入

  IDE 提供了验证器和转换器对象以帮助输入的检查和格式化。这些对象可以在“组件面板”中它们各自的类别中找到。

  您可以通过拖放验证器到一个输入组件上,为一个输入组件绑定一个验证器,例如“文本字段”组件。例如,当您在可视设计器中为一个页面添加了一个“文本字段”组件后,您可以从“验证器”类别中拖放一个“长度验证器”到这个“文本字段”上。

  可选地,您可以拖放验证器到页面上,并将输入组件的 validator 属性设置为那个验证器对象。例如,您可以拖放一个“长度验证器”到一个页面的空白区域,此时 longRangeValidator1 会被添加到“导航”窗口。然后您可以在可视设计器中选择一个输入组件,例如“文本字段”组件,并在它的 validatorExpression 属性的下拉列表中选择 longRangeValidator1。您可以在不止一个组件上使用相同的验证器。

  转换器的机制也是类似的。您同样可以将转换器关联到输出组件上,例如“静态文本”组件。请注意,当您绑定一个组件到一个数据提供器字段时,转换器会被自动地设置。您可以在连接到数据库一节中了解到更多关于绑定到数据提供器的内容。

  您可以使用验证器的“属性”窗口来设置验证规则,例如最小和最大值或者最小和最大长度。类似地,您可以使用转换器的“属性”窗口来设置转换规则,例如值匹配模式或者被调用用于执行转换的方法。“数值转换器”有一个专用的向导,当您第一次拖放“数值转换器”到页面上或者到一个可视组件上的时候它将弹出。

  “组件面板”中的“基本”类别提供了“消息”组件和“消息组”组件,它们能够自动地显示转换错误,验证错误,和必需字段的消息。“消息组”组件显示全局错误消息,运行时错误,以及可选地,所有组件的错误消息。“消息”组件仅显示与之绑定的组件的消息。您可以通过设置“消息”组件的 for 属性或者通过在组件上按住 Ctrl-Shift 组合键并拖放鼠标到您想要绑定到“消息”组件的组件上,来绑定一个“消息”组件到另一个组件上。

  您可以使用任何 Page Bean里的 error,warn,fatal,和 info 方法,通过编程环椒ń定制的错误消息发送?ldquo;消息组”组件上。选择“帮助”>“Javadoc 索引搜索”,在下拉列表的文本字段中输入 FacesBean,点击“查找”,您可以了解更多关于这些方法的内容。

  尝试

  新建一个页面,拖放一个按钮到这个页面上。将按钮的文本设置为 Go。

  拖放一个“文本字段”组件到这个页面上。在“文本字段”的“属性”窗口中,选中 required 属性的复选框。

  拖放一个“标签”组件到“文本字段”组件之上,输入 Price: 并按下 Enter 键。

  在“标签”组件的“属性”窗口中,在 for 属性的下拉列表中选择 textField1 。蛔⒁饪墒由杓破髦械谋昵┦侨绾蜗允疽桓鲂呛乓员砻魉所关联?ldquo;文本字段”组件是必需输入的。

  在“组件面板”中,展开“验证器”类别。拖放一个“双精度范围验证器”到“文本字段”组件上。在“导航”窗口中,选择新建的 doubleRangeValidator1 节点。在验证器的“属性”窗口中,设置 maximum 为 10.0,设置 minimum 为 1.0,如下图所示。

NetBeans Visual Web JSF 应用程序开发入门

  图 16:“双精度范围验证器”属性

  在“组件面板”中,展开“转换器”类别。拖放一个“数值转换器”到“文本字段”组件上。此时将弹出一个“数字格式”对话框,如下图所示。在“类型”下拉列表中选择“货币”,在“语言环境”下拉列表中选择“英文(美国)”。

NetBeans Visual Web JSF 应用程序开发入门

  图 17:数字格式

  添加一个“消息”组件到页面上。在组件上按下 Ctrl-Shift 组合键并拖放到“文本字段”组件上。

  请注意,IDE 将“消息”组件的 for 属性设置为“文本字段”组件的 id。

  添加一个“消息组”组件到页面上。

  将此页面设置为起始页并运行此应用程序。尝试在没有价格输入,输入 1.5,输入一个非数字的值,和输入大于 $10.00 的价格的情况下点击按钮。最后,在文本字段中输入 $1.50 并按下按钮。

  请注意应用程序是如何拒绝所有不符合数字格式的值和没有落在指定的范围之内的值。请注意显示在“消息”组件和“消息组”组件中不同的消息。

  尝试选中“消息组”组件的 showGlobalOnly 复选框。

  了解更多

  在 Visual Web JSF 应用程序中转换和验证数据

  存储和处理数据

  您可以使用 Application Bean,Session Bean,和 Request Bean来存储另一个页面用到的信息。

  使用 Application Bean 所有用户会话中共享信息,例如一个“下拉”组件的静态选项列表。

  使用 Session Bean 存储在用户会话中另一个页面使用到的信息,例如用户的登录名。

  如果您需要用到仅被下一个页面使用的信息,可以使用 Request Bean。

  您存储在 Request Bean 中的任何值将在请求结束时消失。一个请求是从客户端到服务器加上相应响应的一个 HTTP 请求的独立的传输,响应可以是另一个页面。在大多数情况下,请求开始于一个按钮或一个链接的点击,结束于一个将被显示的 HTML 页面的响应。

  注意事项: Request Bean 仅在开始请求的页面将值存储在 Request Bean 的属性中时才获得实例,例如以下描述到的,当一个输入组件绑定到一个 Request Bean 的属性时。

  警告:如果在一个导航规则的 <navigation-case> 元素中包含 <redirect> 元素,您将不能使用 Request Bean。(您可以点击“页面流”编辑器中的“XML”按钮来查看这些规则。)当页面被提交后,<redirect> 元素重定向页面,并在后面的页面能够使用存储在 Request Bean 中的任何值之前结束这个请求。

  添加一个属性到 Session Bean 中:

  在“导航”窗口中双击 SessionBean1 节点。

  在 Java 编辑器中打开 SessionBean1.java。

  添加 answer 属性到构造器 public class SessionBean1 extends AbstractSessionBean 中。

  如果需要,修复导入。

  右键点击编辑器并选择“重构”>“封装字段”。在结果对话框中,如果属性是只读的,创建 getter 方法,如果属性是读/写的,创建 getter 和 setter 方法。

  在“导航”窗口中,属性显示为 SessionBean1 下的一个子节点,但通常不是立刻。

  使用类似的方法添加一个属性到 Request Bean 或者 Application Bean。了解更多信息,请参见在 NetBeans IDE 6.0 中如何添加属性到受管 bean 里这个 FAQ。

  注意事项: 您同样可以添加属性到一个 page bean 里(IDE 为每个页面创建的辅助 bean)。要添加一个属性到一个 page bean,打开页面的 java 代码并在构造器 public class Page1 extends AbstractPageBean 中添加属性的声明,并如以上方法那样封装字段。Page bean 属性的值只维持和 page bean 实例化的时间一样。例如,当用户点击一个“按钮”组件跳转到这个页面时(action 方法返回 null),page bean 的一个新的实例被创建,并且 page bean 的属性值被重新初始化。如果您想传递一个值到这个提交,可以使用“隐藏字段”组件。

  要关联一个组件到一个 bean 的属性,右键点击这个组件并选择“绑定到数据”。在“绑定到数据”对话框中,选择“绑定到对象”标签并选择这个 bean 的属性,如下n所示。

NetBeans Visual Web JSF 应用程序开发入门

  图 18:“绑定到数据”对话框

  注意事项:对于大部分的组件,弹出菜单都提供了两个绑定操作-“属性绑定”和“绑定到数据”。“属性绑定”对话框允许您任何组件属性到一个受管 bean 属性或者一个数据提供器字段。“绑定到数据”对话框是一个绑定组件属性的快捷方式-存储属性到一个受管 bean 属性或者一个数据提供器字段。使用“绑定到数据提供器”标签绑定到您已经添加到页面的任何数据提供器或者一个受管 bean。使用“绑定到对象”标签绑定到一个页面属性或者一个受管 bean 属性。

  尝试

  添加一个属性到 RequestBean1.java:将属性命名为 parm,设置为 String 类型并允许用户以读/写的方式访问。

  请注意新添加的属性可能不会出现在&ldquo;导航”窗口。要显示它,在可视设计器中点击右键,在弹出菜单中选择“刷新”。您也可以通过打开并保存 RequestBean1 源文件来显示属性,例如下列步骤。

  关闭并保存文件。

  创建一个名为 First 的页面,并添加一个“按钮”组件和一个“文本字段”组件。

  右键点击“文本字段”组件,在弹出菜单中选择“绑定到数据”。点击“绑定到对象”标签,选择 RequestBean1 > parm,点击“确定”。

  创建一个名为 Next 的页面。添加一个“按钮”组件和一个“静态文本”组件。

  使用您刚才绑定 First 页面上的“文本字段”组件的相同步骤,绑定 Next 页面上的“静态文本”组件到 RequestBean1 > parm。

  右键点击页面的背景,在弹出菜单中选择“页面导航”。

  在“页面流”编辑器中,创建一个从 First 页面的“按钮”组件到 Next 页面的连接器。不用管 Next 页面的“按钮”组件,因为您要使这个按钮促发 Next 页面简单地跳转到它本身。

  将 First.jsp 设置为起始页并运行这个应用程序。输入一个值并点击按钮。注意 Next 页面显示了您在 First 页面输入的值。在这之后,RequestBean1 的一个实例被初始化,用于将“文本字段”组件的值存储在 parm 属性中。parm 属性的值在随后的响应中被读到(Next 页面的 HTML)。一旦响应被返回,RequestBean1 的实例就被销毁。

  点击 Next 页面上的按钮促发 Next 页面跳转到它自身。注意“静态文本”组件将不再显示一个值。这是因为保存值的 RequestBean1 的实例只存活于 First 页面提交到 Next 页面的 HTML 被返回到客户端的请求中。

  了解更多

  参见理解作用域和受管 Bean

  连接到数据库

  “服务”窗口中包含了一个“数据库”节点,它显示了所有已在 IDE 中注册的数据库,如下图所示。NetBeans IDE 6.0 提供了一个范例数据库 TRAVEL,您将在本教程剩余部分使用到它。

NetBeans Visual Web JSF 应用程序开发入门

  图 19:数据源

  在您可以在项目中访问数据库之前,您必须将 IDE 连接到数据库。您在每次启动 IDE 并打开连接到数据库的项目时都必须这么做。

  如果一个数据库标记显示为断开NetBeans Visual Web JSF 应用程序开发入门并且您无法展开这个数据库节点,这表示 IDE 还未连接到数据库。要连接到 TRAVEL 数据库,在“服务”窗口中右键点击这个数据库的节点并在弹出菜单中选择“连接”。当出现“连接”对话框时,在“口令”中输入 travel并选中“记住口令”。

  当您打开一个已存在的项目,可视设计器可能显示一个错误界面。典型地,这是因为可视设计器需要从数据库获得信息,但 IDE 还未连接到数据库。尝试连接到数据库并点击错误界面上的“继续”按钮来解决这个问题。

  您可以从数据源中拖放一个表到一个组件上或者到页面上,来连接一个页面到一个数据库表。当您这么做了,IDE 会添加一个数据提供器到页面上和一个 rowset 到 SessionBean1 类中,如下图所示。

NetBeans Visual Web JSF 应用程序开发入门

  图 20:数据提供器和 Row Set

  rowset 对象创建一个到数据库的连接,执行查询,和管理结果集。数据提供器对象提供了一个访问多种类i的组件数据的通用接口,从数据库表,到 ArrayList 对象,到 Enterprise JavaBeans 对象。特别地,您使用 rowset 对象的唯一机会是当您需要设置查询参数的时候。在大部分情况下,您可以使用数据提供器对象来访问和操纵数据。

  一旦您添加了一个数据提供器到项目中,您就可以通过右击组件并选择“绑定到数据”来绑定一个组件到这个数据提供器。在“绑定到数据”对话框中点击“绑定到数据提供器”标签使它显示到前端。“选择一个数据提供器”下拉列表显示了项目中所有您可以选择以绑定到组件的数据提供器。选择了一个数据提供器之后,选择适当的数据列绑定到组件。对于某些组件,例如“下拉列表”组件,您必须选择“值字段”和“显示字段”。

  要定义 SQL 查询来检索数据,您可以使用“查询编辑器”,如下图所示。您可以通过一个 rowset 对象访问这个编辑器。

NetBeans Visual Web JSF 应用程序开发入门

  图 21 :查询编辑器

  尝试

  新建一个页面,将它设置为起始页面,然后拖放一个“列表框”组件到页面上。

  在“服务”窗口中,展开“数据库”,展开 TRAVEL 数据库的 jdbc 节点,展开“表”节点。

  拖放 TRIPTYPE 节点到页面上。

  注意事项:如果 TRAVEL 数据库标记是断开的并且您无法展开数据库节点,这表示 IDE 尚未连接到数据库。要连接到 TRAVEL 数据库,在“服务”窗口中右击数据库节点并在弹出菜单中选择“连接”。当出现“连接”对话框的时候,在“口令”在输入 travel,选中“记住口令”,点击“确定”。

  右击“列表框”组件并在弹出菜单中选择“绑定到数据”。

  在“绑定到数据”对话框中,点击“绑定到数据提供器”标签,确认“选择一个数据提供器”下拉列表中 tripTypeDataProvider 被选择。

  设置“值字段”为 TRIPTYPE.TRIPTYPEID(默认选项)并设置“显示字段”为 TRIPTYPE.DESCRIPTION。点击“确定”。

  运行应用程序看看列表框是如何被表中的数据填充的。

  在“导航”窗口中展开 SessionBean1 并双击 triptypeRowSet 节点,打开它的“查询编辑器”。在网格中的 DESCRIPTION 行点击“排序类型”列的区域并从下拉列表中选择“升序”。

  点击标记有类似 jdbc:derby://localhost:1527/travel 字样的“查询编辑器”标签上的 X 关闭“查询编辑器”,并再次运行程序。注意现在的列表项以字母顺序显示。

  (可选的)搜索页面的 Java 源代码中的 _init 方法,查看数据提供器是如何关联到 rowset 的。这个方法默认是折叠的。点击显示在左边界的代码折叠框,展开代码。

  在“项目”窗口中双击“源包”> gettingstarted > SessionBean1 节点,打开 session bean 的 Java 源代码。搜索 session bean 的 _init 方法,查看 rowset 如何实现查询。

  调试 Web 应用程序

  IDE 已经集成了一个调试器以帮助您排除您代码中的问题,如下图所示。您可以用它设置断点和监视,单步执行代码,和执行到光标所在处的代码语句。

  您可以通过点击 Java 编辑器的左边框来设置一个断点。您可以通过右击一个变量或表达式选择“新建监视”来设置一个监视。从主菜单中选择“运行”>“调试主项目”或者“运行”>“运行至光标”来运行调试器。

NetBeans Visual Web JSF 应用程序开发入门

  图 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;

  您可以按下 Alt-Shift-F 组合键来重新格式化您刚添加的代码。

  右键点击 oldString,选择“新建监视”并点击“确定”按钮。用相同的方法为 newString 新建一个监视。

  您可以看到一个“监视”标签窗口在 IDE 的下方打开,被监视的表达式被列在窗口中。

  在方法体的第一个语句左边的边栏上点击,设置一个断点。

  当您点击之后您可以看到出现一个粉红色的框,并且整行代码的背景变成粉红色。

  从主菜单中选择“运行”>“调试主项目”。

  当页面在 Web 浏览器中显示,点击按钮。当调试器在 button1_action 方法处中断时,点击“调试器”窗口中的“监视”标签查看 newString 和 oldString 当前的值。

  从主菜单中选择“运行”>“越过”或者在工具栏中点击“越过”按钮 NetBeans Visual Web JSF 应用程序开发入门 。查看“监视”标签。越过这段代码几次并观察“监视”标签中的“值”一列。

  观察“局部变量”标签和“调用栈”标签。

  选择“运行”>“完成调试器会话”来关闭此调试器会话。

  总结

  您通过创建一个 Visual Web JSF 应用程序项目开始构建一个 web 应用程序。

  您通过右键点击“项目”窗口中的“Web 页”节点并选择“新建”>“Visual Web JSF 页”添加页面。

  从“组件面板”拖放组件到可视设计器中的页面上,进行页面设计。

  点击主工具栏上的“运行主项目”按钮 NetBeans Visual Web JSF 应用程序开发入门 来保存,生成,布署,和运行应用程序。

  使用“页面流”编辑器指定页面导航。您还可以添加超级链接组件到页面上并设置它们的 url 属性值。

  拖放“验证器”对象和“转换器”对象到一个组件上,指定格式和校验规则。

  使用“消息”组件和“消息组”组件显示运行时错误消息。

  使用 RequestBean1,SessionBean1,和 ApplicationBean1 类中的属性来存储和处理从一个页面传递到另一个页面的值。

  从“服务”窗口的“数据库”节点中拖放一个表到页面上或者到页面的组件上,来创建一个数据提供器和它关联的数据库表的 rowset。

  使用“绑定到数据”菜单项绑定组件到数据提供器字段,并绑定组件到 bean 的属性。

  在一个 rowset 上打开一个“查询编辑器”来修改用来填充 rowset 对象的 SQL 查询。

  使用调试器,HTTP 监视器,服务器日志,和“消息组”组件诊断运行时的问题。

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明