《2022年通过网页创建读取更新和删除数据库 .pdf》由会员分享,可在线阅读,更多相关《2022年通过网页创建读取更新和删除数据库 .pdf(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、通过数据库生成JavaServer Faces 2.0 CRUD 应用程序用 NetBeans IDE 来创建一个与后端数据库进行交互的Web 应用程序。 使用该应用程序可以查看和修改数据库中包含的数据,也称为 CRUD (创建、读取、更新和删除)功能。开发的应用程序依赖于以下软件:JavaServer Faces (JSF) 2.0,用于前端Web 页、验证处理和请求-响应周期的管理。Java Persistence API (JPA) 2.0,通过 EclipseLink 从数据库中生成实体类,并管理事务。(EclipseLink 是JPA 的引用实现,也是GlassFish Server
2、 的默认持久性提供器。 )Enterprise JavaBeans (EJB) 3.1, 提供了用于访问实体类的无状态EJB , 并且包含了应用程序的业务逻辑。此 IDE 提供了两种可为应用程序生成所有代码的向导。一种是 Entity Classes from Database(通过数据库生成实体类)向导 ,您可以通过所提供的数据库来生成实体类。在创建实体类之后,可使用“ 通过实体类创建 JSF 页” 向导 为实体类创建JSF 受管 Bean 和 EJB ,以及一组用于处理实体类数据视图的Facelets 页。本教程的最后部分了解应用程序 为可选章节,其中提供了大量练习有助于您更好地理解应用程
3、序并进一步熟悉此IDE。目录创建数据库检查数据库结构创建Web 应用程序项目通过数据库生成实体类通过实体类生成JSF 页了解应用程序检查已完成的项目使用 SQL 脚本填充数据库了解 Facelets 页中的编辑器支持通过字段验证来了解数据库完整性编辑实体类另请参见要学完本教程,您需要具备以下软件和资源。软件或资源要求的版本NetBeans IDE6.8 、6.9、7.0、7.1、Java EE 包Java 开发工具包(JDK)6 GlassFish ServerOpen Source Edition 3.x mysql-consult.zip (MySQL) 或N/A 名师资料总结 - - -
4、精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 28 页 - - - - - - - - - javadb-consult.zip (JavaDB) 注:NetBeans IDE Java EE 包还包括本教程所需的GlassFish Server(一种Java EE 6 兼容的服务器)。要获取本教程的解决方案项目,请下载ConsultingAgencyJSF20.zip。创建数据库本教程使用了一个名为consult的咨询代理数据库。安装IDE 时,该数据库并未包括在其中,因此需要首先创建该数据
5、库以按照本教程完成后续的学习。consult数据库旨在演示IDE 对处理各种数据库结构所提供的支持范围。因此,该数据库不应作为数据库设计的推荐范例或最佳做法。相反,它尝试将可能会在数据库设计中遇到的许多相关功能包含了进来。例如,consult数据库包含了所有可能的关系类型、复合主键和许多不同的数据类型。有关此数据库结构的更详细概览,请参见下表。注:本教程使用MySQL 数据库服务器,但也可使用JavaDB 数据库服务器来完成本教程的学习。要在JavaDB 中创建该数据库, 请下载并解压缩javadb-consult.zip档案文件。 此档案文件包含用于创建、放置和填充consult数据库的SQ
6、L 脚本。有关配置IDE 使用 MySQL 的详细信息,请参见连接 MySQL 数据库 教程。有关配置IDE 以使用JavaDB 的详细信息,请参见使用Java DB (Derby) 数据库 教程。创建数据库本教程使用了一个名为consult的咨询代理数据库。安装IDE 时,该数据库并未包括在其中,因此需要首先创建该数据库以按照本教程完成后续的学习。consult数据库旨在演示IDE 对处理各种数据库结构所提供的支持范围。因此,该数据库不应作为数据库设计的推荐范例或最佳做法。相反,它尝试将可能会在数据库设计中遇到的许多相关功能包含了进来。例如,consult数据库包含了所有可能的关系类型、复合
7、主键和许多不同的数据类型。有关此数据库结构的更详细概览,请参见下表。注:本教程使用MySQL 数据库服务器,但也可使用JavaDB 数据库服务器来完成本教程的学习。要在JavaDB 中创建该数据库, 请下载并解压缩javadb-consult.zip档案文件。 此档案文件包含用于创建、放置和填充consult数据库的SQL 脚本。有关配置IDE 使用 MySQL 的详细信息,请参见连接 MySQL 数据库 教程。有关配置IDE 以使用JavaDB 的详细信息,请参见使用Java DB (Derby) 数据库 教程。MySQL 和GlassFish 组合:如果在使用MySQL 的同时使用Glas
8、sFish v3 或Open Source Edition 3.0.1,则必须确保数据库受口令保护。(有关详细信息,请参见GlassFish 问题12221。)如果您使用的是默认MySQL root帐户和空口令,则可以通过命令行提示符设置口令。例如,要将口令设置为 nbuser,请在命令行提示符下输入以下命令。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 28 页 - - - - - - - - - shell mysql -u root mysql UPDATE my
9、sql.user SET Password = PASSWORD(nbuser) WHERE User = root; mysql FLUSH PRIVILEGES; 如果收到mysql: command not found 错误,则说明尚未将 mysql命令添加到 PATH 环境变量中。可以改为通过输入MySQL 安装的 bin目录的完整路径来调用该命令。例如,如果mysql命令位于计算机上的 /usr/local/mysql/bin中,请输入以下内容:shell /usr/local/mysql/bin/mysql -u root 有关详细信息,请参见正式的MySQL 参考手册:确保初始M
10、ySQL 帐户安全4.2.1. 调用MySQL 程序4.2.4. 设置环境变量 执行以下步骤以创建数据库并通过IDE 与其进行连接。1. 下载 mysql-consult.zip并将此档案解压缩到本地系统。在解压缩档案时您将看到用于创建和填充数据库的SQL 脚本。档案中还包含了用于拖放表的脚本。通过数据库生成JavaServer Faces 2.0 CRUD 应用程序 CRUD(创建、读取、更新和删除)2. 在 Services (服务)窗口中,展开Databases (数据库)节点,右键单击MySQL 节点并选择 Start Server (启动服务器)。3. 右键单击MySQL 服务器节点
11、并选择Create Database(创建数据库)。4. 在 Create MySQL Database(创建 MySQL 数据库)对话框中键入consult作为数据库名称。单击 OK (确定)。 Databases (数据库)节点(jdbc:mysql:/localhost:3306/consult root on Default schema) 下随即出现一个新的节点。5. 右键单击新节点并选择Connect (连接)。6. 从主菜单中选择File (文件) Open File (打开文件)并导航至解压缩的文件mysql_create_consult.sql。单击Open (打开)。该文件
12、会自动在SQL 编辑器中打开。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 28 页 - - - - - - - - - 7. 确保在SQL 编辑器工具栏的Connection (连接)下拉列表中选择了consult数据库, 然后单击 Run SQL (运行SQL )() 按钮。单击 Run SQL (运行SQL )时, Output (输出)窗口中出现以下输出内容。检查数据库结构要查看是否已正确创建了表,请展开数据库连接节点下的Tables (表)节点。您可以展开表节
13、点来查看表的列、索引和任意外键。可以右键单击列并选择Properties (属性)来查看有关该列的其他信息。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 28 页 - - - - - - - - - 注:如果在Tables (表) 节点下未看到任何表,右键单击Tables (表)节点并选择Refresh (刷新)。从consult数据库的结构可看出该数据库包含了具有多种关系和各种字段类型的表。通过数据库创建实体类时, IDE 会为各种字段类型自动生成相应的代码。名师资料
14、总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 28 页 - - - - - - - - - 下表描述了consult数据库中的表。数据库表描述设计功能CLIENT 咨询机构的客户非生成的复合主键(其字段不构成外键)CONSULTANT 咨询机构的员工,客户可基于合同对其进行聘用包括一个LONG VARCHAR 类型的简历字段名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -
15、第 6 页,共 28 页 - - - - - - - - - CONSULTANT_STATUS 顾问在咨询机构的状态(例如,可能为活动和非活动的状态)CHAR 类型的非生成主键RECRUITER 负责联络客户和顾问的咨询机构的员工PROJECT 客户配有咨询机构顾问的项目包含了构成CLIENT 表的外键的两个字段的非生键BILLABLE 顾问在某个项目中工作的小时数,咨询机构据其向相关客户收费包括一个CLOB 类型的工件字段ADDRESS 客户账单地址PROJECT_CONSULTANT 一个连接表,表示当前为哪些项目指派了哪些顾问交叉引用了PROJECT 和 CONSULTANT , 其个
16、复合主键consult数据库包含了多种关系。在通过数据库创建实体类时,IDE 将基于列的SQL 类型自动生成相应的 Java 类型的属性。下表描述了consult数据库的实体关系。(未显示反向关系。)实体相关实体关系信息描述CLIENT RECRUITER 进行手动编辑,允许为空值的一对一关系;如果不进行手动编辑,允许为空值的一对多关系一个CLIENT 有多个RECRUITER ,而一个RECRUITER 没有或有一个CLIENT (如果不编辑)CLIENT ADDRESS 不允许为空值的一对一关系一个CLIENT 有一个ADDRESS ,而一个A没有或有一个CLIENT CLIENT PRO
17、JECT 不允许为空值的一对多关系;在Project 实体中,客户字段的值是Project 主键的一部分一个CLIENT 有多个PROJECT ,而一个P只有一个CLIENT CONSULTANT PROJECT 多对多关系一个CONSULTANT 有多个PROJECT ,而PROJECT 也有多个CONSULTANT CONSULTANT BILLABLE 不允许为空值的一对多关系一个CONSULTANT 有多个BILLABLE ,而BILLABLE 有一个CONSULTANT CONSULTANT_STATUS CONSULTANT 不允许为空值的一对多关系一个CONSULTANT_STA
18、TUS 有多个CONSULTANT ,而一个CONSULTANT 有一CONSULTANT_STATUS 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 28 页 - - - - - - - - - CONSULTANT RECRUITER 允许为空值的一对多关系一个CONSULTANT 没有或有一个RECRU个 RECRUITER 有多个CONSULTANT BILLABLE PROJECT 不允许为空值的一对多关系一个BILLABLE 有一个PROJECT ,而一个有
19、多个BILLABLE 既然已经创建了数据库,那么就可以创建Web 应用程序,并使用Entity Classes from Database(通过数据库生成实体类)向导基于数据库表生成实体类。创建 Web 应用程序项目在本练习中,您将创建一个Web 项目并将JavaServer Faces 框架添加到该项目中。在创建项目时,需要在新建项目向导的Frameworks (框架)面板中选择JavaServer Faces。1. 从主菜单中, 选择 File(文件) New Project (新建项目) (Ctrl-Shift-N 组合键; 在 Mac 上为 ?-Shift-N 组合键)。2. 从 Ja
20、va Web 类别中选择Web Application(Web 应用程序)。单击Next (下一步)。3. 键入ConsultingAgency作为项目名称,并设置项目位置。单击Next (下一步)。4. 将服务器设置为GlassFish , 并将 Java EE Version (Java EE 版本)设置为Java EE 6 Web 。单击 Next (下一步)。5. 在 Frameworks (框架)面板中,选择JavaServer Faces 选项。单击Finish (完成)。单击 Finish (完成),此时IDE 生成 Web 应用程序项目并在编辑器中打开index.xhtml。通
21、过数据库生成实体类在 IDE 中连接到数据库后,可以使用Entity Classes from Database(通过数据库生成实体类)向导基于数据库中的表快速生成实体类。IDE 可以为所选的每个表生成实体类,也可以为相关表生成任何需要的实体类。1. 在 Projects (项目)窗口中,右键单击ConsultingAgency项目节点,并选择New (新建) Entity Classes from Database(通过数据库生成实体类)。(如果未列出此选项,请选择 Other (其他)。然后,在文件向导中,选择Persistence (持久性)类别,再选择Entity Classes fr
22、om Database(通过数据库生成实体类)。)2. 从 Data Source (数据源)下拉列表中选择New Data Source (新建数据源)以打开Create Data Source (创建数据源)对话框。3. 键入jdbc/consult作为 JNDI 名称,选择jdbc:mysql:/localhost:3306/consult root on Default schema作名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 28 页 - - - - - -
23、 - - - 为数据库连接。4. 单击 OK (确定)以关闭对话框并返回到向导。consult数据库中的表出现在Available Tables (可用表)列表框中。5. 单击 Add All (全部添加)按钮以选择数据库中包含的所有表。单击Next (下一步)。6. 键入jpa.entities作为包名称。7. 确认已选中用于生成命名查询和创建持久性单元的复选框。NetBeans IDE 6.8 注意事项单击 Create Persistence Unit(创建持久性单元)按钮以打开Create Persistence Unit(创建持久性单元)对话框并使用默认值。名师资料总结 - - -精
24、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 28 页 - - - - - - - - - 8. 单击 Finish (完成)。单击 Finish (完成),此时IDE 将在项目的jpa.entities包中生成实体类。使用向导通过数据库创建实体类时,IDE 会检查数据库表之间的关系。在Projects (项目)窗口中,如果展开jpa.entities包节点, 则可以看到IDE 为每个表 (PROJECT_CONSULTANT表除外) 生成了一个实体类。因为PROJECT_CONSULTANT是
25、一个连接表,所以IDE 没有为其创建实体类。IDE 还为带有复合主键的表生成了两个额外的类:CLIENT和PROJECT。这些表的主键类(ClientPK.java和ProjectPK.java)在其名称后附加了PK。如果查看为实体类生成的代码,可以发现向导为自动生成的ID 字段添加了GeneratedValue标注,还为实体类中的某些字段添加了Basic(optional = false)标注。基于Basic(optional = false)标注, “ 通过实体类创建JSF 页” 向导可以生成包含检查的代码,这些检查可防止那些字段出现不允许为空值的列违规。通过实体类生成JSF 页创建了实体
26、类之后,便可以创建用于显示和修改数据的Web 接口。您将使用“ 通过实体类创建JSF 页”向导来生成JavaServer Faces 页。向导生成的代码将基于实体类中包含的持久性标注。对于每个实体类,向导都会生成以下内容:无状态会话Bean 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 28 页 - - - - - - - - - 注: 在 NetBeans IDE 7.0 和 7.1 中, IDE 还会生成文件AbstractFacade.java, 该文件包含创建
27、、检索、修改和删除实体实例的业务逻辑,并且每个会话Bean 都会扩展AbstractFacade.java。JSF 会话范围的受管Bean 包含 CRUD 功能的四个Facelets 文件(Create.xhtml、Edit.xhtml、List.xhtml和View.xhtml)的目录JSF 受管 Bean 所使用的实用程序类(JsfUtil和PaginationHelper)本地化消息的属性包,以及项目的Faces 配置文件(如果不存在faces-config.xml文件,则会创建一个)中的相应条目辅助 Web 文件(包括所呈现组件的默认样式表)和一个Facelets 模板文件生成 JSF
28、 页:1. 在 Projects (项目)窗口中,右键单击项目节点,然后选择New (新建) JSF Pages from Entity Classes (通过实体类创建JSF 页)打开该向导。 (如果未列出此选项,请选择Other(其他)。 然后,在文件向导中, 选择JavaServer Faces 类别, 然后选择JSF Pages from Entity Classes (通过实体类创建JSF 页) 。 )Available Entity Classes(可用的实体类)框列出了项目中所包含的七个实体类。该框并未列出可嵌入类(ClientPK.java和ProjectPK.java) 。2
29、. 单击 Add All(全部添加) 以将所有类移动到Selected Entity Classes(选定的实体类) 框中。单击 Next (下一步)。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 28 页 - - - - - - - - - 3. 在向导的 “ 步骤3” 即 Generate JSF Pages and Classes(生成JSF 页和类)中,键入jpa.session作为 JPA 会话 Bean 包。4. 键入jsf作为 JSF 类包。5. 在 L
30、ocalization Bundle Name(本地化包名称)字段中输入/resources/Bundle。这样将生成一个名为resources的包,其中将包含Bundle.properties文件。(如果将此字段保留为空,则在项目的默认包中将创建属性包。)要使 IDE 能更好地适应您的项目约定,可以定制由向导生成的任何文件。单击Customize Template (定制模板)链接以修改向导所使用的文件模板。通常,可以使用Template Manager(模板管理器) (Tools (工具) Templates (模板)来访问和更改IDE 维护的所有模板。名师资料总结 - - -精品资料欢迎
31、下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 28 页 - - - - - - - - - 6. 单击 Finish (完成)。IDE 在jpa.session包中生成无状态会话Bean ,并在jsf包中生成 JSF 会话范围的受管Bean 。每个无状态会话Bean 用于处理相应实体类的操作,其中包括通过 Java 持久性API 创建、编辑和销毁实体类的实例。每个JSF 受管Bean 用于实现javax.faces.convert.Converter接口,并执行将相应实体类的实例转换为String对象的
32、操作,反之亦然。如果展开Web Pages (Web 页)节点,则可以看到IDE 为每个实体类生成了一个文件夹。每个文件夹都包含Create.xhtml、Edit.xhtml、List.xhtml和View.xhtml文件。 IDE 还通过向每个List.xhtml页中插入链接来修改index.xhtml文件。每个 JSF 受管 Bean 都对应四个相应的Facelets 文件,并且包含调用相应会话Bean 中的方法的代码。展开resources文件夹节点以查找由向导生成的jsfcrud.css默认样式表。 如果在编辑器中打开应用程序欢迎页面(index.xhtml) 或 Facelets 模
33、板文件(template.xhtml),将会看到该文件包含了对样式表的引用。 每个实体类所对应的四个Facelets 文件中的每个文件都使用Facelets 模板文件。如果展开Source Packages(源包)节点,则可以看到向导生成的会话Bean 、JSF 受管 Bean 、实用程序类和属性包。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 28 页 - - - - - - - - - 为了注册属性包的位置,向导还生成了一个Faces 配置文件(faces-con
34、fig.xml)。如果展开Configuration File(配置文件) 节点并在XML 编辑器中打开faces-config.xml,则可以看到该文件包含了以下条目。 /resources/Bundle bundle 此外,如果展开新的resources包,则会发现Bundle.properties文件,该文件包含了客户端默认语言的消息。这些消息是由实体类属性派生而来的。要添加新的属性包,请右键单击Bundle.properties文件并选择Customize (定制)。使用Customizer (定制器)对话框可以将新的语言环境添加到您的应用程序中。了解应用程序既然您的项目已包含了实体类
35、、用于控制实体类的EJB 会话 Bean 和 JSF 驱动的用于显示和修改数据库的前端,那么请尝试运行该项目以查看结果。以下是一系列可选的小练习,可用来进一步熟悉应用程序,以及IDE 所提供的功能。检查已完成的项目使用 SQL 脚本填充数据库名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 28 页 - - - - - - - - - 了解 Facelets 页中的编辑器支持通过字段验证来了解数据库完整性编辑实体类检查已完成的项目1. 要运行项目,请在Projects (
36、项目)窗口中右键单击项目节点并选择Run (运行),或单击主工具栏中的Run Project (运行项目) () 按钮。当显示应用程序的欢迎页面时,将提供一个链接列表,用于查看包含在每个数据库表中的条目。当完成了JSF Pages from Entity Classes(通过实体类创建JSF 页)向导时,链接将添加到欢迎页面(index.xhtml)。 这些链接将作为Facelets 页 (为 “ 咨询机构 ” 数据库提供CRUD 功能)的入口点。2. 3. Hello from Facelets 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 名师资料总结 - - -精品
37、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 28 页 - - - - - - - - - 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 单击 Show All Consultant Items 链接。查看上面的代码,则可以看到目标页为/consultant/List.xhtml。 (在 JSF 2.0 中,由于隐式导航所以文件扩展名是推断出来的。 )数据库目前不包含任何样例数据。可以通过单击Create New Consultant 链接和使用
38、提供的Web 窗体手动添加数据。 此操作将触发/consultant/Create.xhtml页进行显示。还在 IDE 中运行SQL 脚本以使用样例数据填充表。以下子部分对这两个选项进行了说明。您可以单击索引链接返回到欢迎页面列出的链接。这些链接提供了保存在每个数据库表中数据的视图,并触发了每个实体文件夹中List.xhtml文件的显示。稍后会有说明,在将数据添加到表之后,会显示其他链接,其中每个条目都允许您查看(View.xhtml)、编辑(Edit.xhmtl) 和销毁单个表记录的数据。使用 SQL 脚本填充数据库运行提供的脚本, 该脚本会生成数据库表的样例数据。脚本 (mysql_ins
39、ert_data_consult.sql) 包含在咨询机构数据库zip 文件中,该文件可从所需软件表 中下载。根据所使用的数据库服务器(MySQL 或 JavaDB ),您可以运行提供的脚本,该脚本会为数据库表生成样例数据。对于MySQL ,该脚本为mysql_insert_data_consult.sql。对于 JavaDB ,该脚本名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 28 页 - - - - - - - - - 为javadb_insert_data_c
40、onsult.sql。两个脚本分别包含在各自的档案文件中,可以通过所需软件表 进行下载。1. 从主菜单中选择File (文件) Open File (打开文件),然后导航到脚本在您的计算机上的位置。单击Open (打开)。文件会自动在IDE 的 SQL 编辑器中打开。2. 确保在SQL 编辑器工具栏的Connection (连接)下拉列表中选择了consult数据库。在编辑器中右键单击并选择Run Statement (运行语句) , 或单击Run SQL(运行SQL ) () 按钮。您可以在Output (输出)窗口中查看脚本运行的结果。3. 重新启动GlassFish Server。这是使
41、服务器可以重新加载和缓存consult数据库中包含的新数据所必需的步骤。 为此,请在 Output 窗口中单击GlassFish Server 标签(GlassFish Server 标签显示服务器日志。 ) ,然后单击左旁注中的Restart Server(重新启动服务器)() 按钮。服务器即会停止,然后重新启动。4. 重新运行项目, 然后单击Show All Consultant Items 链接。将看到该列表不再为空。NetBeans 数据库支持可以使用IDE 的数据库表查看器来显示和修改直接在数据库中维护的表数据。例如,右键单击Services(服务)窗口中的 consultant表,
42、然后选择View Data(查看数据)。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 28 页 - - - - - - - - - 在编辑器的顶部将显示用于执行操作的SQL 查询,下面则显示表的图形视图。在窗体元格内双击以对数据进行内联修改。单击Commit Records(提交记录)() 图标以提交对数据库的更改。图形视图提供了更多的功能。有关详细信息,请参见NetBeans IDE 中的数据库支持 。了解 Facelets 页中的编辑器支持1. 在编辑器中打开/c
43、onsultant/List.xhtml页。第8 行表明该页的呈现依赖于Facelets template.xhtml文件。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 28 页 - - - - - - - - - 要显示行号,请右键单击编辑器的左旁注,然后选择 Show Line (显示行号)。2. 使用 IDE 的 Go to File (转至文件)对话框来打开template.xhtml。按 Alt-Shift-O 组合键(在Mac 上为 Ctrl-Shift-
44、O 组合键),然后开始键入template。单击 OK (确定)(或按Enter 键)。3. 模板将使用标记将其他文件的内容插入到其标题和正文中。将光标置于标记上,然后按Ctrl- 空格键调用文档弹出式窗口。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 28 页 - - - - - - - - - 可以在JSF 标记及其属性上按Ctrl- 空格键调用文档弹出式窗口。您查看的文档是从正式的JSF 标记库文档 所提供的描述中获取的。4. 切换回List.xhtml文件(按
45、Ctrl-Tab 组合键)。标记用来定义将应用于模板标题和正文的内容。为每个实体类生成的所有4 个 Facelets 文件(Create.xhtml、Edit.xhtml、List.xhtml和View.xhtml)都使用了此模式。5. 将您的光标置于任何EL 表达式(用于包含在Bundle.properties文件中的本地化消息)上。按Ctrl-空格键查看本地化消息。在上图上,可以看到EL 表达式解析为List,该表达式将应用到模板标题,并且可以从呈现在浏览器中的页面得到验证。6. 滚动到文件底部并找到Create New Consultant链接的代码(第92 行) 。如下所示: 7. 在
46、commandLink的action属性上按Ctrl-空格键以调用文档弹出式窗口。action属性表示在浏览器中单击链接时处理请求的方法。将提供以下文档:方法表达式,用于表示在用户激活此组件时要调用的应用程序操作。该表达式的值必须为一个没有参数且返回对象(调用其toString() 以派生逻辑结果)的公共方法,该对象将被传递到此应用程序的NavigationHandler。换句话说,action值通常是指JSF 受管Bean 中的一个方法,其值为String。然后JSF 的NavigationHandler会使用该字符串将请求转发到相应的视图中。可通过以下步骤来验证这一点。名师资料总结 - -
47、 -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 28 页 - - - - - - - - - 8. 将光标置于consultantController上,然后按Ctrl-空格组合键。编辑器的代码完成表明consultantController是一个JSF 受管 Bean 。9. 将光标移动到prepareCreate,然后按Ctrl- 空格组合键。代码完成列出了包含在ConsultantController受管 Bean 中的方法。10. 按 Ctrl 键 (在Mac 上为? 键) ,然后
48、将鼠标悬停在prepareCreate上。形成了一个链接,您可以直接导航至ConsultantController受管 Bean 中的prepareCreate()方法。11. 单击链接并查看prepareCreate()方法(如下所示) 。12.public String prepareCreate() 13. current = new Consultant(); 14. selectedItemIndex = -1; 15. return Create; 该方法将返回Create。NavigationHandler在后台收集信息, 并将Create字符串应用于以视图(为响应请求而发送)
49、为目标的路径:/consultant/Create.xhtml。 (在 JSF 2.0 中,由于隐式导航所以文件扩展名是推断出来的。)通过字段验证来了解数据库完整性1. 在浏览器的Consultants List 页中,单击Create New Consultant 链接。正如之前子部分中的说明,此操作将触发呈现/consultant/Create.xhtml页。2. 在窗体中输入以下详细信息。目前,将RecruiterId和StatusId字段保留为空。字段值ConsultantId2名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -
50、 - 名师精心整理 - - - - - - - 第 21 页,共 28 页 - - - - - - - - - EPasswordjack.smartHourlyRate75BillableHourlyRate110HireDate07/22/2008ResumeIm a great consultant.Hire me - You wont be disappointed!RecruiterId-StatusId-名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 28