在本教程中,您将使用 NetBeans IDE 和 JSF 1.2 (Woodstock) 组件创建并运行一个简单的 Web 应用程序:Hello Web。该样例应用程序将让您输入一个姓名,然后显示一条包含该姓名的消息。首先,使用一个输入字段来实现此页面。然后,使用下拉列表替换该输入字段,用户可以在该下拉列表中选择姓名。该下拉列表中将被填充某数据库表中的姓名。
预计时间: 25 分钟
目录
要学习本教程,您需要具备以下软件和资源。
* 要利用 NetBeans IDE 的 Java EE 5 功能,请使用完全符合 Java EE 5 规范的应用服务器,例如 GlassFish Application Server V2 UR2。如果使用的是其他服务器,请查阅发行说明和常见问题解答,了解已知问题和解决方法。有关支持的服务器和 Java EE 平台的详细信息,请参见发行说明。
创建项目
- 从主菜单中,选择“文件”>“新建项目”。
- 在“新建项目向导”中,从“类别”列表中选择“Java Web”,并从“项目”列表中选择“Web 应用程序”。单击“下一步”。
- 将项目命名为
HelloWeb
。
- (可选)选择“使用专用文件夹存储库”复选框,并指定库文件夹的位置。参见共享项目库,了解更多关于此选项的信息。
- 单击“下一步”。
- 选择要在其中部署应用程序的服务器。这里仅列出了已在 IDE 中注册的服务器。
- 选择要与应用程序一起使用的 Java EE 版本,然后单击“下一步”。
-
选择“可视化 Web JavaServer Faces 框架”并单击“完成”
该项目将出现在可视设计器打开的初始页(Page1
)中。
设计页面
首先,设计一个与下图类似的页面。
-
在 Page1 的“属性”窗口中,在 Title
属性的文本框中键入 Hello Web
,如下图所示。
部署此页面(或项目)时,Title
属性的值将出现在浏览器标题栏中。
提示:可以通过在可视设计器或“导航”窗口中选择组件,从而在“属性”窗口中访问该组件的属性。要打开“导航”窗口,请选择“窗口”>“导航”>“导航”。
单击页面空白处访问该页面的属性。
-
在“导航”窗口中,展开 Page 1 节点,右键单击 Page1 节点并选择“添加绑定属性”,如下图所示。
-
如果“组件面板”窗口中的“Woodstock 基本”节点未展开,现在将其展开。
本例使用的所有组件都包含在“组件面板”的“Woodstock 基本”部分中。
如果“组件面板”不可见,请选择“窗口”>“组件面板”加以显示。
-
从“组件面板”中的“Woodstock 基本”部分拖放一个“标签”到可视设计器页面的左侧,键入 Name:
并按下 Enter 键。
注意,该组件将进入该页面的网格。此外,“属性”窗口中 text
属性的值将变为 Name:
。
提示:可通过右键单击该组件切换至编辑模式,并从弹出式菜单中选择“编辑标签文本”。
- 从“组件面板”的“Woodstock 基本”部分拖放一个“文本字段”到可视设计器,键入
Enter Your Name
,并按下 Enter 键。
- 在“属性”窗口中,将“文本字段”的
id
属性由 textField1
更改为 nameField
。
-
右键单击“文本字段”组件,并选择 添加绑定属性。
添加绑定属性时,IDE 会为该组件创建 getter 和 setter 方法。
-
选择“标签”组件,并在“属性”窗口选择 nameField
作为 for
属性。
-
拖放一个“按钮”组件到“文本字段”组件的右侧,键入Say Hello
,然后按下 Enter 键。
注意:这会影响 IE7 中“JSF 1.2 按钮”组件的宽度。解决方法是将“按钮”组件置于一个布局组件中(网格面板、组面板或布局面板)。自动重新改变布局组件的大小会重新改变“按钮”组件的大小。
-
右键单击“按钮”组件并选择 “添加绑定属性”。
- 在“属性”窗口中,将“按钮”组件的
id
属性由 button1
更改为 helloButton
。
- 拖放一个“静态文本”组件到“标签”组件下方。
- 将该“静态文本”组件的
id
属性由 staticText1
更改为 helloText
。
- 右键单击“静态文本”组件并选择 “添加绑定属性”。
-
将一个“消息组”组件拖至页面的不起眼处,比如拖至“静态文本”组件下面。
添加一个“消息组”组件,显示运行时错误和其它消息类型,有助于诊断编程错误。
-
在“编辑”工具栏中,单击 JSP 切换至 JavaServer 页面(JSP)源编辑器。
查看代码,注意您在“属性”窗口中所做的更改是如何保存的。在浏览器中首次显示页面时,该页面将 JSP 页面标签的指示准确无误的显示。如果您的页面 bean 中含有更改属性值的代码,这些更改只出现在提交页面的请求中,并随后被重新显示。
添加一些行为
在本节中,您将添加一些代码,让该页面重新显示消息 "Hello entered-name
"。为此,您需要添加一个事件处理程序,一旦单击该按钮,应用程序就会调用该事件处理程序。此事件处理程序将“静态文本”组件的 text
属性设定为 "hello" 消息,并让页面重新显示,以出现该文本。
- 在编辑工具栏中,单击“设计”切换至“可视编辑器”。
-
双击“按钮”组件。
“编辑区将”切换至 Java 编辑器,并显示 Page1 的页面 bean。 该按钮的事件处理程序 helloButton_action
将被添加至该页面 bean 。
-
用以下几行代码(显示为粗体)替换 helloButton_action
方法。然后按下 Alt-Shift-F 重定代码格式。
代码样例 1: helloButton_action() 代码 |
public String helloButton_action() {
String name = (String)nameField.getText();
helloText.setText("Hello, " + name + "!");
return null;
}
|
以 粗体 显示的第一行代码中使用 getText
方法获取 nameField
“文本字段”组件的 text
属性值。该值是一个 Object
类型的对象,必须为字符串,因而将被强制转换为 String
对象。该对象随后被分配给 name
变量。
以 粗体 显示的第二行代码用于为 helloText
“静态文本”组件设置 text
属性值。该值包含用户在 nameField
“文本字段”组件中输入的姓名。例如,如果用户输入 Fred
,则此行代码会将“静态文本”组件的 text
属性设为 Hello, Fred!
。
运行应用程序
-
在 Java 编辑器中,确保 Java 代码不含任何错误。
错误在延着代码左边的红色下划线或红色方框中标出。如果代码中有任何错误,项目将无法生成。
提示:将光标停在代码左边的红色框,查看错误描述。
-
单击“运行主项目”按钮 。
注意:缺省情况下,创建项目时会启用保存时编译功能,因此在 IDE 中运行应用程序无需首先编译代码。有关保存时编译功能的更多信息,请参见创建、导入并配置 Java 项目指南的“保存时编译”一节。
-
在文本字段中输入您的姓名,并单击 "Say Hello"。
随后,“Hello 您的姓名”就会显示在下面。
浏览器将该表单提交给调用 Web 应用程序的 Web 服务器。该应用程序执行按钮行为方法、更新页面元素、用更改过的数据重新呈现相同的页面并将该页面发送回 Web 浏览器。下图显示了提交 Gus Townsend
姓名时的结果。
使用“下拉列表”替换“文本字段”
本教程余下的部分将介绍如何使用“下拉列表”组件替代“文本字段”获取用户输入,如下图所示。此“下拉列表”组件从绑定的 PERSON
数据库表中获取选择列表。
- 在编辑工具栏中,单击“设计”切换至可视设计器。
- 在可视设计器中,右键单击
nameField
“文本字段”组件并从弹出式菜单中选择“删除”。
-
从“组件面板”的“Woodstock 基本”部分拖放一个“下拉列表”组件到可视设计器的页面中。 将该组件移至“文本字段”组件所在的区域。
请注意,如下图所示,“导航”窗口显示了一个 dropDown1 组件和一个 dropDown1DefaultOptions 对象。该“下拉列表”组件的 items
属性标明了包含列表中选项的对象。在页面中添加“下拉列表”组件之后,IDE 会创建一个“缺省选项”对象(dropDown1DefaultOptions
),并将此对象设置为“下拉列表”组件的 items
属性的值。在可视设计器中,只有该“下拉列表”组件是可见的。“缺省选项”对象仅提供包含在列表中的选项。本教程其后的部分中,您将修改将“下拉列表”组件,将来自不同源的选项包含进去。
- 在“属性”窗口中,将该组件的
id
更改为 nameDropDown
。
- 右键单击该“下拉列表”组件并选择“添加绑定属性”。
-
选择“标签”组件,并在“属性”窗口中选择 nameDropDown
作为 for
属性。
设置数据库
在本节中,您将在 IDE 中设置 travel 数据库和 MySQL 数据库服务器。
- 请确保您的机器已安装并正在运行 MySQL 数据库服务器。有关如何连接到 MySQL 数据库的更多信息,请参见连接到 MySQL 数据库。
-
在“服务”窗口中,右键单击“MySQL 服务器”节点并选择“创建数据库”。
此时将打开“创建新数据库”对话框。
-
从下拉列表中,选择“样例数据库:travel”并单击“确定”。
在“服务”窗口中, Travel 数据库将出现在“MySQL 服务器”节点下方。
将“下拉列表”绑定到“数据库表”
“服务”窗口出现在 IDE 工作区的左侧,其中包含一个“数据库”节点。该“数据库”节点显示了已经添加到 IDE 中的所有数据库驱动程序和连接。
该 NetBeans IDE 带有一个样例 Travel 数据库。Travel 数据库出现在“数据库”节点下方。在本节中,您将使用 Travel 数据库中的 person
表,为“下拉列表”组件提供选项。
-
在“服务”窗口中,展开“数据库”节点并检查是否已连接到 Travel 数据库。
如果 travel 数据库标记的 jdbc 节点标记是断开的,并且无法展开该节点,则表示 IDE 未连接到数据库。要连接到 TRAVEL 数据库,右键单击 travel 数据库连接的 jdbc 节点,从弹出式菜单中选择“连接”。
-
展开 travel 数据库的“表”节点。
在“表”下方,可看到数据库中每个表的节点,如 carrental
和 flight
。下图显示了“表”节点未展开时的“运行时”窗口。
-
将 person
从“服务”窗口拖放至“下拉列表”。
列表中显示的内容由 item 1
变为 abc
,表明该列表正显示绑定数据,且显示的数据是 String
类型。
IDE 将为数据库表添加一个不可见的 personDataProvider 组件。PersonDataProvider 组件将出现在“导航”窗口中。IDE 还将为 SessionBean1 添加一个 personRowSet
属性。
-
右键单击“下拉列表”并从弹出式菜单中选择“绑定到数据”。此时将打开“绑定到数据”对话框,如下图所示。
将数据绑定到“下拉列表”组件时,必须指明要在列表中显示什么(显示字段)还必须指定在下面的项目中使用何值(值字段)。通常,您想要显示数据库中的一些有意义的值,如人名,但您又想在下面的项目中使用惟一的标识符,比如个人 ID。 但在本应用程序中,要将“值”字段和“显示”字段都绑定到同一个数据库列中,即 person.name 列,如以下两个步骤所述。
- 将对话框中的“值”字段设置为
person.name
,将“显示”字段保留为 person.name
,并单击“确定”。
添加一些行为
-
在可视设计器中,双击“按钮”组件。
“编辑区”将切换为 Java 编辑器,并移至 helloButton_action
方法。
-
将 helloButton_action
方法的主体替换为以下代码(显示为粗体)。
<!-- BEGIN CODE SAMPLE COMPONENT -->
代码样例 2: helloButton_action 替换代码 |
public String helloButton_action() {
String name = (String)nameDropDown.getSelected();
String splitnames[] = name.split(",");
helloText.setText("Hello, " + splitnames[1] + "!");
return null;
}
|
<!-- END CODE SAMPLE COMPONENT -->
第一行代码使用 getSelected
方法获取下拉列表的当前值,即列表中当前选定的姓名。
由于数据在数据库中以 lastname、firstname 存储,显示字符串前必须先对其进行修改。否则,应用程序将输出 "Hello, lastname, firstname!"第二行代码使用 split
方法将字符串分拆为数组,用逗号作为分隔符。数组中的第一个条目(位置 0)包含姓氏(last name),而位置 1 则包含名字(first name)。
在第三行中,“静态文本”组件的 text
属性将被设定为一个包含名字的值。
注意: 此方法假设此表中的所有值都采取 lastname、firstname 的格式。 并未强制处理不遵循此格式的字符串。
-
将以下代码添加至 prerender
方法。此代码将列表中的第一条定为缺省选项。
<!-- BEGIN CODE SAMPLE COMPONENT -->
代码样例 3:prerender 方法代码 |
public void prerender() {
// If no selection, set default selection
if (nameDropDown.getSelected() == null) {
personDataProvider.cursorFirst();
nameDropDown.setSelected
((String)personDataProvider.getValue("person.name"));
}
}
|
<!-- END CODE SAMPLE COMPONENT -->
运行应用程序
-
单击“运行主项目”按钮。
注意:缺省情况下,创建项目时会启用保存时编译功能,因此在 IDE 中运行应用程序无需首先编译代码。有关保存时编译功能的更多信息,请参见创建、导入和配置 Java 项目指南的“保存时编译”一节。
-
从列表中选择一个姓名,并单击 "Say Hello"。
浏览器将“下拉列表”组件的选定值发送给服务器,服务器执行该按钮的 helloButton_action
方法。
更多内容
试试看。“列表框”组件与“下拉列表”组件类似。试着用“列表框”组件替换“下拉列表”组件。在此应用程序中,“列表框”组件的 multiple
属性必须不被检查,因为一次只能选定一个条目 。请记住将“列表框”绑定到数据库表,并修改 helloButton_action
方法以获取“列表框”的选定值。
试试看。 使用与您在本教程中学到的步骤的类似步骤,构建一个含“下拉列表”组件的 Web 应用程序,其“下拉列表”组件在 TRIPTYPE 表中显示所有 DESCRIPTION 值的。用户单击“显示类型 Id”按钮时,让页面显示 trip 类型的 TRIPTYPEID。 为此,必须将“下拉列表”组件的“显示”字段绑定到 TRIPTYPE.DESCRIPTION,并将该组件的“值”字段绑定到 TRIPTYPE.TRIPTYPEID。
结束语
在 IDE 中设计 Web 页面的典型的工作流包含以下步骤:
- 创建页面。
- 将组件添加到页面中,如“文本字段”组件和“按钮”组件。
- 编辑组件属性以改变其外观和行为。
- 如有必要,将组件绑定到其数据连接。
- 编辑 Java 源以控制服务器端的行为,如事件处理行为。
- 生成并测试应用程序。
另请参见
[转自:http://www.netbeans.org/kb/docs/web/helloweb_zh_CN.html]
分享到:
相关推荐
**JSF(JavaServer Faces)** 是一个Java平台上的用户界面框架,用于构建Web应用程序。它提供了一种组件模型和事件处理机制,使得开发者能够更方便地创建动态、交互式的Web应用。在JSF中,布局是至关重要的,因为它...
此外,它还支持集成测试,确保JSF应用程序的功能完整性和性能。 8. **版本控制**:NetBeans IDE集成了常见的版本控制系统,如Git和Subversion,方便团队协作和代码管理。 通过深入学习这些内容,你将能够熟练掌握...
NetBeans IDE内置了部署工具,可直接将JSF应用程序发布到服务器,如Tomcat、GlassFish等,简化了部署流程。 通过以上对NetBeans Visual Web Pack 5的介绍,我们可以看到它是一个强大的工具,适合初学者和经验丰富...
在开发Web应用程序时,有时我们需要调用外部服务来获取数据或执行特定功能。"Accessing Web Services from a Visual Web Application"这一主题主要关注如何在基于Visual Web的应用程序中集成Web服务。Visual Web工具...
Sun Java Studio Creator是一个集成开发环境,专为简化JSF应用的开发而设计,它降低了复杂性,缩短了部署时间。通过可视化工具,开发者可以更直观地处理数据库和Web服务的交互,如同拖放操作一般。 Apache Struts的...
**JSF(JavaServer Faces)** 是一个Java平台上的用户界面框架,用于构建Web应用程序。它简化了前端组件与后端服务之间的交互,并提供了一种声明式的方式来处理UI事件和数据绑定。在JSF中,自定义组件是扩展其功能的...
PDF(Portable Document Format)是一种通用的文件格式,用于呈现文档,包括文本格式和图像,独立于应用程序、硬件和操作系统。在IT领域,PDF常用于共享和分发文档,因为它能保持原始文档的布局和格式。生成和处理...
对于Web应用程序,可能需要更新`WEB-INF/lib`目录下的库文件。 **简单的AJAX Echo项目**:开始时,你可以创建一个简单的AJAX Echo示例,用于测试Ajax4JSF的功能。这通常包括一个JSP页面,一个数据Bean,`faces-...
Java Web开发是构建基于互联网的交互式应用程序的关键技术,它结合了Java编程语言与Web服务的概念,为开发者提供了丰富的工具和框架来创建高效、可扩展的Web应用。本篇文章将深入探讨Java Web开发的基本概念、发展...
NetBeans IDE提供了Visual Web Pack插件,极大地简化了JSF应用的开发。它提供了可视化的页面设计工具,支持拖放式的组件布局,同时还集成了JSF项目模板和代码生成功能,帮助开发者快速搭建JSF应用的基本结构。 综上...
**JSF(JavaServer Faces)** 是一个Java平台上的用户界面框架,用于构建Web应用程序。它简化了前端和后端的交互,提供了丰富的组件库和事件处理机制。在本示例中,我们将在NetBeans 6.0环境中利用JSF进行开发,实现...
JSF,即JavaServer Faces,作为Java平台的一个标准组件框架,其设计初衷是为了提供一种更为简化的方式来构建动态Web应用程序,特别是在表现层的处理上。尽管JSF在国内外的发展遭遇了一些挑战,比如面临Struts的竞争...
* 使用 Java 进行 Web 应用程序开发需要使用到 Java Servlet、JavaServer Pages(JSP)、JavaServer Faces(JSF)等技术。 * Tomcat、Jboss 是常用的 Java Web 服务器,可以用来部署和运行 Java Web 应用程序。 ...
- **faces-config.xml**:JSF应用的核心配置文件。 - **Web.xml**:Servlet容器的配置文件。 - **部署**:将项目部署到服务器上,以便于运行和测试。 #### 三、Ajax4jsf框架的基本概念 - **基本概念**: - Ajax4...
Visual Studio提供了集成的开发环境,可以用来创建、调试和部署Windows CE应用程序。Platform Builder则是一个用于构建和定制Windows CE操作系统的工具,它允许开发者选择需要的功能模块,生成特定于硬件的映像文件...
- **NetBeans Visual Web Pack**:为NetBeans添加了可视化Web开发功能,使得开发者能够更直观地设计和开发Web应用程序。 - **Sun Application Server Pack**:包含了Sun Application Server,适用于部署Java EE应用...
**Ajax4jsf** 是一款用于增强 JavaServer Faces (JSF) 应用程序的开源框架,它旨在简化 AJAX 功能的集成,无需编写复杂的 JavaScript 代码。通过 Ajax4jsf,开发人员能够充分利用 JSF 的优势,如生命周期管理、验证...
在Java Web开发中,开发者可以使用各种工具,如Visual Web Developer Express 2005,来创建和部署Web Services。此外,Spring框架、Struts、JSF等也为Java Web应用提供了丰富的支持。通过深入理解和熟练运用这些技术...