corner imagecorner image
FeaturesPluginsDocs & SupportCommunityPartners

在 Visual Web JSF 应用程序中使用 Hibernate

在本教程中,您将使用 NetBeans IDE 来创建和部署显示数据库中数据的 Web 应用程序。在检索简单传统 Java 对象(Plain Old Java Object, POJO)和将其存储到关系数据库中时,Web 应用程序将使用 Hibernate 框架作为持久性层。

Hibernate 是一个为对象关系映射 (ORM) 提供工具的框架。本教程将演示如何向 IDE 添加对 Hibernate 框架的支持以及如何添加必需的 Hibernate 文件。创建 Java 对象并将应用程序配置为使用 Hibernate 之后,向 Web 页中添加 Visual Web JSF 组件以显示数据。

在开始本教程之前,您可能需要先熟悉如何使用 Hibernate 和 Visual Web JSF 组件。

您可以从适用于 NetBeans IDE 的 Hibernate 演示观看该教程的视频。

注意:本文档针对的是 NetBeans IDE 6.1 发行版。如果您使用的是 NetBeans IDE 6.5,请参见在 NetBeans IDE 6.5 中的 Visual Web JSF 应用程序中使用 Hibernate

目录

本页内容适用于 NetBeans IDE 6.1

要学习本教程,您需要具备以下软件和资源。

软件或资源 要求的版本
NetBeans IDE Web 与 Java EE 版本 6.1
Java 开发工具包 (Java Developer Kit, JDK) 版本 6
版本 5
JavaServer Faces 组件/
Java EE 平台
1.2(带有 Java EE 5*)或
1.1(带有 J2EE 1.4)
GlassFish 应用服务器 V2
Hibernate 插件 可以从 NetBeans Update Center 获得
Travel 数据库

您可以从插件门户Hibernate Travel 应用程序插件页下载本教程使用的解决方案。

在 IDE 中添加 Hibernate 支持

要将对 Hibernate 的支持集成到 IDE 中,您需要安装 Hibernate 插件,可以从 NetBeans Beta Update Center 获得这些插件。Beta 更新中心包含两个用于 Hibernate 的插件。

如果您已安装了 Hibernate 插件,可跳过本部分。您可以检查“已安装”标签查看已安装的插件。

  1. 从主菜单中选择“工具”>“插件”。
  2. 在“可用插件”标签中,选择以下插件并单击“安装”。
    • Hibernate 支持
    • Hibernate 3.2.5 库
  3. 执行向导中的步骤安装插件。
显示 Hibernate 插件的插件管理器

安装 Hibernate 插件会向 Web 项目添加对创建 Hibernate 文件和添加 Hibernate 库的支持。

创建 Web 应用程序项目

在本练习中,您将创建一个 Visual Web JSF 项目并在其中添加 Hibernate 库。创建项目之后,您将在“新建项目”向导的“框架”面板中选择 "Visual Web JSF" 和 "Hibernate"。您还将指定数据库。

  1. 选择“文件”>“新建项目”(Ctrl-Shift-N)。从 "Web" 类别中选择“Web 应用程序”并单击“下一步”。
  2. 键入 HibernateTravelApp 作为项目名称并设置项目位置。
  3. 取消选中“使用专用的文件夹来存储库”选项(如果该选项处于选中状态)。
    对于本教程,没有理由将项目库复制到专用文件夹,因为您不需要与其他用户共享库。
    单击“下一步”。
  4. 将“服务器”设置为 GlassFish,并将“Java EE 版本”设置为 "Java EE 5"。单击“下一步”。
  5. 选中“Visual Web JavaServer Faces”复选框。
  6. 选中“Hibernate 3.2.5”复选框。
  7. 使用缺省会话名称 (session1) 并确保为“数据库连接”和“连接 URL”选择 Travel 数据库。单击“完成”。

注意:IDE 附带一个样例 Travel 数据库以及一个到该数据库的预配置的连接。如果在向导的“框架”面板中,Travel 数据库未作为一个可用选项,则检查“服务”窗口中的“数据库”节点下是否列出了该连接。如果此处没有该连接,则需要创建数据库连接。

“新建项目”向导的“框架”面板

单击“完成”后,IDE 将创建 Web 应用程序项目并在编辑器中打开 hibernate.cfg.xml 文件和 Page1

展开“项目”窗口中的“库”节点,可以看到 IDE 已向项目中添加了 Hibernate 库。

显示有 Hibernate 库的“项目”窗口的屏幕快照

修改 Hibernate 配置文件

创建使用 Hibernate 框架的新项目时,IDE 会自动在应用程序的上下文类路径的根路径(“文件”窗口中的 Web-INF/classes)上创建 hibernate.cfg.xml 配置文件。该文件位于“项目”窗口的“配置文件”节点下。该配置文件包含关于数据库连接、资源映射和其他连接属性的信息。您可以使用多视图编辑器编辑该文件或直接在 XML 编辑器中编辑 XML。

在本练习中,您将编辑在 hibernate.cfg.xml 中指定的缺省属性,以启用 SQL 语句的调试日志记录以及 Hibernate 的会话上下文管理。

  1. 在“设计”标签中打开 hibernate.cfg.xml。可以通过展开“项目”窗口的“配置文件”节点并双击 hibernate.cfg.xml 来打开该文件。
  2. 在“可选属性”下,展开“配置属性”节点。
  3. 单击“添加”以打开“添加 Hibernate 属性”对话框。
  4. 在此对话框中,选择 hibernate.show_sql 属性并将值设置为 true。这将启用 SQL 语句的调试日志记录。
    “添加 Hibernate 属性”对话框的 hibernate.show_sql 属性
  5. 展开“其他属性”节点并单击“添加”。
  6. 在对话框中,选择 hibernate.current_session_context_class 属性并将其值设置为 thread 以启用 Hibernate 的自动会话上下文管理。
    显示有 hibernate.current_session_context_class 属性的“添加 Hibernate 属性“对话框

    如果单击编辑器中的 XML 标签,则可以在 XML 视图中看到此文件。该文件应该如下所示:

    <hibernate-configuration>
        <session-factory name="session1">
            <property name="hibernate.dialect">org.hibernate.dialect.DerbyDialect</property>
            <property name="hibernate.connection.driver_class">org.apache.derby.jdbc.ClientDriver</property>
            <property name="hibernate.connection.url">jdbc:derby://localhost:1527/travel</property>
            <property name="hibernate.connection.username">travel</property>
            <property name="hibernate.connection.password">travel</property>
            <property name="hibernate.show_sql">true</property>
            <property name="hibernate.current_session_context_class">thread</property>
        </session-factory>
    </hibernate-configuration>
  7. 保存对该文件所做的更改。

创建 Java 对象

在本教程中,您将使用两个简单传统 Java 对象(Plain Old Java Object, POJO)PersonTrip 来呈现 travel 数据库中的表 PERSON 和 TRIP 中的数据。每个类为表中的列指定字段并使用简单的 setter 和 getter 检索和编写数据。创建类之后,需要将类映射到表。

创建 Person Java 类

  1. 右键单击“项目”窗口中的“源包”节点并选择“新建”>“Java 类”以打开“新建 Java 类”向导。
  2. 在该向导中,为类名键入 Person,为包键入 travel。单击“完成”。
  3. 对类进行以下更改(以粗体显示的内容)以实现“可序列化”接口并为表列添加字段。
    public class Person implements Serializable {
        private int personId;
        private String name;
        private String jobTitle;
        private boolean frequentFlyer;
        private java.util.Set trips;
    }
  4. 通过右键单击“源代码编辑器”,选择“插入代码”(Alt-Insert),然后选择“Getter 和 Setter”为字段生成 getter 和 setter。
  5. 在“生成 Getter 和 Setter”对话框中,选择所有字段并单击“生成”。
    “生成 Getter 和 Setter”对话框”

    在“生成 Getter 和 Setter”对话框中,可以使用键盘上的向上箭头将所选项移动到 Person 项,然后单击空格键选择 Person 中的所有字段。

  6. 修复导入并保存更改。

创建 Trip Java 类

  1. 右键单击“项目”窗口中的“源包”节点并选择“新建”>“Java 类”以打开“新建 Java 类”向导。
  2. 在该向导中,为类名键入 Trip,为包键入 travel。单击“完成”。
  3. 对类进行以下更改(以粗体显示的内容),实现“可序列化”接口并为表列添加字段。
    public class Trip implements Serializable {
        private int tripId;
        private int personId;
        private Date depDate;
        private String depCity;
        private String destCity;
        private int tripTypeId;
    }
  4. 通过右键单击“源编辑器”,选择“插入代码”(Alt-Insert),然后选择“Getter 和 Setter”为字段生成 getter 和 setter。
  5. 在“生成 Getter 和 Setter”对话框中,选择所有字段并单击“生成”。
  6. 修复导入并保存更改。

您可以关闭 Person.javaTrip.java,因为不再需要编辑这些文件。

将类映射到数据库表

创建表示表的类之后,您需要使用 Hibernate 映射文件将每个持久类映射到各个表。映射文件是一个包含 ORM 元数据的 XML 文件,ORM 元数据定义将类字段映射到表列和主键的方式。您将为每个类创建一个 Hibernate 映射文件。

在本节中,您将使用“新建文件”向导为每个类创建一个简单的 .hbm.xml Hibernate 映射文件。然后,在 XML 编辑器中编辑该文件,将每个类中的字段映射到相应表中的列并设置其他属性。可以使用 IDE 的代码完成功能来帮助您编辑映射文件。

Person.java 映射到 PERSON 表

首先,您将创建 Hibernate 映射文件 Person.hbm.xml,将 Person.java 中的字段映射到 PERSON 表中的列。

  1. 启动 JavaDB 数据库服务器。
  2. 在“项目”窗口中,右键单击“源包”下的 Travel 节点,然后在弹出式菜单中选择“新建”>“其他”以打开“新建文件”向导。
  3. 从“类别”列表中选择 Hibernate,从“文件类型”列表中选择“Hibernate 映射文件”。单击“下一步”。
  4. 键入 Person.hbm 作为文件名,将文件夹设置为 src/java/travel。单击“下一步”。
  5. 在“要映射的类”字段中键入 travel.Person

    注意:或者,可以单击“浏览”按钮并在“查找类型”对话框中键入 "Person"。

  6. 从“数据库表”下拉列表中选择 PERSON。

    注意:如果“数据库表”下拉列表为空,则可能意味着数据库未运行。您可以继续执行操作并创建文件,而无需指定表,但您需要记住在 XML 中提供该表。

  7. 单击“完成”。

    单击完成后,IDE 将在与 Person.java 相同的源包中创建 Person.hbm.xml 文件并在编辑器中打开该文件。缺省情况下,XML 文件如下所示:

    <hibernate-mapping>
      <class dynamic-insert="false" dynamic-update="false" mutable="true"
      name="travel.Person" optimistic-lock="version" polymorphism="implicit"
      select-before-update="false" table="PERSON"/>
    </hibernate-mapping>

    注意:如果创建文件时,无法在下拉列表中选择 PERSON 表,请确保将 table="PERSON" 添加到 class 元素中。

  8. 在 XML 编辑器中,进行以下更改(以粗体显示的内容)以映射 ID、属性以及一对多关系。
    <hibernate-mapping>
      <class dynamic-insert="false" dynamic-update="false"
          mutable="true" name="travel.Person" optimistic-lock="version"
          polymorphism="implicit" select-before-update="false" table="PERSON">
            <id column="PERSONID" name="personId">
                <generator class="increment"/>
            </id>
            <property column="NAME" name="name"/>
            <property column="JOBTITLE" name="jobTitle"/>
            <property column="FREQUENTFLYER" name="frequentFlyer"/>
            <set cascade="all-delete-orphan" inverse="true" lazy="true" name="trips" table="TRIP">
                <key column="PERSONID"/>
                <one-to-many class="travel.Trip"/>
            </set>
        </class>
    </hibernate-mapping>

    可以在 XML 编辑器中使用代码完成功能来帮助您添加属性和值。如果代码完成功能无法正常运行,您将看到以下说明,如下图所示。

    XML 编辑器的屏幕快照,显示XML 代码完成应在映射 Person.hbm.xml 时显示

    注意:缺省情况下,class 元素具有一个结束标记。因为需要在开始和结束 class 元素之间添加属性元素,所以需要进行以下更改(以粗体显示的内容)。进行更改之后,可以在 class 元素之间使用代码完成。

    <hibernate-mapping>
      <class dynamic-insert="false" dynamic-update="false"
      mutable="true" name="travel.Person" optimistic-lock="version"
      polymorphism="implicit" select-before-update="false" table="PERSON">
    
      </class>
    </hibernate-mapping>
  9. 验证 XML,修复任何验证错误并保存文件。

Trip.java 映射到 TRIP 表

现在,您将创建 Hibernate 映射文件 Trip.hbm.xml,以将 Trip.java 中的字段映射到 TRIP 表中的列。

  1. 在“项目”窗口中,右键单击“源包”下的 Travel 节点,然后在弹出式菜单中选择“新建”>“其他”以打开“新建文件”向导。
  2. 从“类别”列表中选择 Hibernate,从“文件类型”列表中选择“Hibernate 映射文件”。单击“下一步”。
  3. 键入 Trip.hbm 作为文件名,将文件夹设置为 src/java/travel。单击“下一步”。
  4. 在“要映射的类”字段中键入 travel.Trip

    注意:或者,可以单击“浏览”按钮并在“查找类型”对话框中键入 "Trip"。

  5. 从“数据库表”下拉列表中选择 TRIP。

    注意:如果“数据库表”下拉列表为空,则在此处将其保留为空。随后,可以在 XML 编辑器中输入表名称。

  6. 单击“完成”。

    单击“完成”后,IDE 将在与类 Trip.java 相同的文件夹中创建 Trip.hbm.xml 并在编辑器中打开该文件。

  7. 在 XML 编辑器中,进行以下更改(粗体)。
    <hibernate-mapping>
            <class dynamic-insert="false" dynamic-update="false" mutable="true"
                name="travel.Trip" optimistic-lock="version" polymorphism="implicit"
                select-before-update="false" table="TRIP">
    	<id column="TRIPID" name="tripId">
                <generator class="increment"/>
            </id>
            <property column="PERSONID" name="personId"/>
            <property column="DEPDATE" name="depDate" type="date"/>
            <property column="DEPCITY" name="depCity"/>
            <property column="DESTCITY" name="destCity"/>
            <property column="TRIPTYPEID" name="tripTypeId"/>
        </class>
    </hibernate-mapping>

    在 XML 编辑器中使用代码完成来帮助您添加属性和值。

  8. 验证 XML,修复任何验证错误并保存文件。

创建 Hibernate Helper 类

要使用 Hibernate,您需要创建一个 helper 类,该类处理启动并访问 Hibernate 的 SessionFactory 来获得 Session 对象,以便您可以加载和存储 Person 和 Trip 对象。此 helper 类首先调用 Configuration() 来加载 hibernate.properties 文件。然后,该类调用 configure() 并加载 hibernate.cfg.xml 配置文件。最后,此 helper 类构建 SessionFactory 来获得 Session 对象。

在本节中,使用“新建文件”向导创建 helper 类 HibernateUtil.java

  1. 右键单击 travel 源包节点并选择“新建”>“其他”以打开“新建文件”向导。
  2. 从“类别”列表中选择 Hibernate,从“文件类型”列表中选择 HibernateUtil.java。单击“下一步”。
  3. 键入 HibernateUtil 作为类名。单击“完成”。
显示如何创建 HibernateUtil 的“新建文件”向导

单击“完成”后,该类将在编辑器中打开。由于不需要编辑该文件,因此可以关闭该文件。

现在,您已经拥有应用程序所需的所有类。在“项目”窗口中展开“源包”节点,您的项目应该与下图类似。

显示有项目结构的“项目”窗口的屏幕快照

创建 Visual Web JSF 页

创建类之后,可以创建用于显示和修改数据的 Web 页。您将创建一个使用 JSF 框架和绑定到对象的 Visual Web JSF 组件的 JSP 页。

向页中添加 Visual Web JSF 组件

  1. 在“项目”窗口中,展开“Web 页”文件夹并在“可视设计器”中打开 Page1.jsp
  2. 从组件面板的“Woodstock 基本”组件集中拖放一个“下拉列表”组件到 Page1 的左上角。
  3. 右键单击“下拉列表”组件,并从弹出式菜单中选择“更改时自动提交”。

    当用户从下拉列表中选择新值时,该操作就会让浏览器提交该页面。

  4. 再次右键单击“下拉列表”组件并选择“添加绑定属性”。

    注意:您将在本教程稍后的部分中指定属性绑定。NetBeans IDE 6.1 具有按需绑定功能。在组件需要 Java 编码的位置,必须手动为 Visual Web JSF 应用程序中的组件添加绑定属性。要执行此操作,右键单击各组件,然后选择“添加绑定属性”。有关详细信息,请参见 On-demand Binding Attribute Wiki(按需绑定属性 Wiki)。

  5. 拖放一个“表”组件到“下拉列表”组件下方。
  6. 拖放一个“消息组”组件到“表”组件下方。

    “消息组”组件将帮助您诊断运行时问题。缺省情况下,“消息组”组件显示与运行时错误、验证错误和转换错误相关的消息。

  7. 保存所做的更改。

现在,您的 Web 页已具备了必要的组件。现在,需要将这些组件绑定到数据源。

编辑器的设计视图(页面中有已放置组件)

从 SessionBean1 访问数据源

现在,您需要编辑 SessionBean1 以访问数据源。在本练习中,您将使用“添加属性”对话框指定 SessionBean1 中的字段并为这些字段生成 getter 和 setter。会话 Bean 将打开一个会话上下文,然后通过 Java 对象检索数据。

  1. 在“项目”窗口中,展开 hibernatetravelapp 源包并双击 SessionBean1.java 以在编辑器中打开该文件。
  2. 将光标放置在源代码中的空白区域(例如,构造函数后面),单击鼠标右键并选择“插入代码”>“添加属性”(Ctrl-I) 以打开“添加属性”对话框。
  3. 在“添加属性”对话框中,在“名称”字段中键入 personOptions,在“类型”字段中键入 Option[] 并选择 private
  4. 选择“生成 Getter 和 Setter”(如果为未选中状态)。单击“确定”。
    添加 personOptions 属性时的“添加属性”对话框
  5. 重复这些步骤,添加以下属性:
    名称 类型
    selectedPersonId 整数
    trips4Person Trip[]
    添加 selectedPersonId 属性时的“添加属性”对话框 添加 trips4Person 属性时的“添加属性”对话框
  6. 通过在 getApplicationBean1 方法之后向 SessionBean1 中添加以下内容(粗体)向类中添加方法 buildPersonOptionsupdateTrips4Person
    protected ApplicationBean1 getApplicationBean1() {
            return (ApplicationBean1) getBean("ApplicationBean1");
        }
    
    private void buildPersonOptions() {
        List<Person> personList = null;
        try{
            Session session = HibernateUtil.getSessionFactory().getCurrentSession();
            Transaction tx = session.beginTransaction();
            Query q = session.createQuery("from Person");
            personList = (List<Person>) q.list();
    
        } catch(Exception e) {
            e.printStackTrace();
        }
    
        personOptions = new Option[personList.size()];
        int i=0;
        for(Person person : personList) {
            Option opt = new Option(person.getPersonId(), person.getName());
            personOptions[i++] = opt;
        }
    }
    
    private void updateTrips4Person() {
        if(selectedPersonId == null ) {
            trips4Person = new Trip[1];
            trips4Person[0] = new Trip();
            return;
        }
    
        Set personTrips = null;
        try{
           Session session =
                    HibernateUtil.getSessionFactory().getCurrentSession();
            Transaction tx = session.beginTransaction();
            Person person = (Person)session.load(Person.class, selectedPersonId);
            personTrips = (PersistentSet)person.getTrips();
    
        } catch(Exception e) {
            e.printStackTrace();
        }
    
        trips4Person = (Trip[]) personTrips.toArray(new Trip[0]);
    }

    buildPersonOptions 方法调用对 Person 数据源的查询并将结果存储在 personOptions 数组中。updateTrips4Person 方法更新所选个人的行程。

  7. 修复导入。
    “修复导入”对话框

    注意:选择要导入的完全限定名称时,请确保选择 org.hibernate 库以及 com.sun.Webui.jsf.model.Optionjava.util.Set

  8. 通过在 init() 方法的末尾添加以下内容(粗体)来调用 buildPersonOptions 方法。
    @Override
    public void init() {
        super.init();
    
        try {
            _init();
        } catch (Exception e) {
            log("SessionBean1 Initialization Failure", e);
            throw e instanceof FacesException ? (FacesException) e : new FacesException(e);
        }
        // Fill in the personOptions[]
        buildPersonOptions();
    
    }
  9. 通过在 setSelectedPersonId 方法的末尾添加以下内容(粗体)来调用 updateTrips4Person 方法。
    public void setSelectedPersonId(Integer selectedPersonId) {
        this.selectedPersonId = selectedPersonId;
        updateTrips4Person();
    }
  10. 保存所做的更改。
  11. 在“项目”窗口中右键单击项目节点,并选择“构建”。

将组件绑定到数据

在本节中,将 Web 页中的“下拉列表”和“表”组件绑定到 SessionBean1 中在上一部分定义的属性。

  1. 在“可视设计器”中打开 Page1.jsp
  2. 右键单击“下拉列表”组件并选择“属性绑定”以打开“属性绑定”对话窗口。
  3. 在可绑定的属性列表中选择“项目”并在绑定目标列表中选择 personOptions(位于 SessionBean1 节点下)。单击“应用”。
    显示有绑定属性项到目标 PersonOptions 的匹配的“属性绑定”对话框
  4. 在同一对话框中,在可绑定的属性列表中选择“选定”并在绑定目标列表中选择 selectedPersonId(位于 SessionBean1 节点下)。单击“应用”。
    显示有所选绑定属性与目标 SeletPersonId 的匹配的“属性绑定”对话框
  5. 单击“关闭”关闭此对话窗口。
  6. 在可视设计器中,右键单击“表”组件并选择“表布局”。
  7. 在该对话框中,从“数据来自”下拉列表中选择 trips4Person (SessionBean1)

    注意:如果在下拉列表中没有看到 trips4Person (SessionBean1),则很可能是因为您忘记了在上一部分结束时构建该项目。

  8. 在“选定”列表中选择 personId 并单击向左箭头按钮将该字段从“选定”列表移动到“可用”列表中。
  9. 使用“上移”和“下移”按钮按以下顺序排列剩余的字段,如下所示,然后单击“确定”。
    显示字段顺序的“表布局”对话框
  10. 在“编辑”工具栏中,单击 Java 以在 Java 编辑器中打开 Page1.java
  11. prerender 方法中,添加以下代码(以粗体显示的内容)。
    public void prerender() {
        try {
            if (dropDown1.getSelected() == null ) {
                Option firstPerson = getSessionBean1().getPersonOptions()[0];
                getSessionBean1().setSelectedPersonId((Integer)firstPerson.getValue());
            }
        } catch (Exception ex) {
            log("Error Description", ex);
            error(ex.getMessage());
        }
    }

    prerender 方法中的代码将在 Web 浏览器开始显示页面之前调用。向 prerender 方法中添加代码会使该页在用户第一次访问页面时在下拉列表中显示第一个人的信息。

    当浏览器首次请求此页面时,应用程序会创建 Page1 的一个实例并调用 prerender 方法。服务器将发送响应(HTML 页面),并且 Page1 实例将被破坏。应用程序并不会调用值更改事件处理程序,因为应用程序只有在提交页面时(在本例中,选择一个新的个人时)才会生成值更改事件。

  12. 右键单击源代码并从弹出式菜单中选择“修复导入”以打开“修复导入”对话框。在“全限定名称”下拉列表中,选择 com.sun.Webui.jsf.model.Option,如下所示。
    “修复导入”对话框
  13. 保存所做的更改。

运行项目

  1. 在主工具栏中单击“运行主项目”。

    IDE 将保存所有修改的文件,重新生成应用程序并将其部署到服务器中。
  2. 从下拉列表中选择某个人,查看表的内容如何随所选个人的数据一起更新。
浏览器中已完成应用程序的屏幕快照

安装样例插件

您可以通过从插件门户下载 Hibernate Travel 应用程序插件来下载本教程使用的解决方案项目。在安装插件后,一个样例项目将添加到“新建项目”向导中的可用 Visual Web 样例中。您必须先将 Hibernate 和 JSF 库添加到项目中,然后才能运行样例应用程序。您还需要向 IDE 注册一个 Glassfish 应用服务器实例。

您需要安装 Hibernate 插件,然后才能向项目添加 Hibernate 库。

请完成下列步骤以下载插件,创建样例项目并添加必需的 Hibernate 和 JSF 库。

  1. 选择“工具”>“插件”以打开插件管理器。
  2. 在“可用插件”标签中选择 "Hibernate Travel App Sample"。单击“安装”。

    单击安装后,按照插件安装程序的说明一步步执行插件安装。

    当看到有关样例应用程序插件未签名的警告时,单击“继续”。

  3. 从主菜单中选择“文件”>“新建项目”以打开“新建项目”向导。
  4. 在“类别”窗格中,选择“样例”> "Web" >“Visual JSF”,然后选择 "Hibernate Travel App Sample"。单击“下一步”。
  5. 指定项目位置。单击“完成”。

    单击“完成”时,IDE 将创建该项目并在“项目”窗口中显示该项目。项目将无法正常编译,因为缺少某些库。在“项目”窗口中展开该项目的“库”节点,您可以看到缺少必需的 Hibernate 和 JSF 库。

    显示有所创建样例应用程序的“项目”窗口
  6. 右键单击“库”节点并从弹出式菜单中选择“添加库”。“添加库”对话框将显示可用的库。
  7. 单击“导入”打开“导入库”对话框。
  8. 选择以下全局库:
    • Hibernate
    • JSF 1.1/1.2 支持
    • Web UI 组件
    • Web UI 缺省主题

    在选择库时,可以通过按住 ctrl 键选择多个库。

    “导入库”对话框的屏幕快照

    单击“导入库”。

  9. 确保在“添加库”对话框中选择了正确的库,然后单击“添加库”。
    “添加库”对话框的屏幕快照

    当您单击“添加库”时,IDE 会在“项目”窗口的“库”节点下显示已添加的库。

    显示有添加库后的样例应用程序的“项目”窗口

    在添加了必需的库后,您的源文件上的编译错误标记将消失。

  10. 右键单击项目节点,然后选择“运行”。

单击“运行”,IDE 将生成应用程序并将应用程序部署到服务器。缺省的 Web 页将在浏览器窗口中打开。


另请参见