test
作者:Chris Schalk,甲骨文公司
2005 年 1 月
一个很常见的 Web 应用程序开发任务是装配用户界面 (UI) 组件,这些组件显示静态源或动态源(如数据库或 Web 服务中的源)中的选择。很明显,基本 HTML 窗体元素可以轻松地处理静态源,但当需要动态内容时,诸如用于用户界面表示的 JavaServer Faces 技术和中间层技术(如 Oracle TopLink)提供了一个综合的解决方案。
本方法文档详细介绍了如何装配静态 JSF 和动态选择组件(它们通过 Oracle JDeveloper 10.1.3 预览版绑定到 Oracle TopLink 中间层中提供的数据)。
OTN 上还提供了相关的补充方法文档“使用 ADF Faces JSF 选择组件”。该文档演示了同一选择示例,但却使用了 Oracle 的 ADF Faces JSF 组件。读者也完全可以查看该文档。
在开始使用之前,请首先确保从 OTN 中下载 JDeveloper 10.1.3 预览版并将它安装到您的计算机中。您还需要设置一个数据库连接。(本方法文档使用 HR 通用模式连接,但任何模式都将满足需要。)
要开始构建示例应用程序,我们将使用应用程序工作区向导,该向导将为中间层可持续性代码生成 Model 项目,并为应用程序的视图(和控制器)组件生成 ViewController 项目。File->New->General->Application。
对于 Application Package Prefix,我们将使用“selectfun”,对于 Application Template,我们将使用“No Template [All Technologies]”。
public List getEmployees()
{
EmployeesClient employeesClient = new EmployeesClient();
// To use sessions.xml uncomment the following three lines of code, fill in the appropriate resource locations and add sessions.xml to the classpath.
// oracle.toplink.tools.sessionconfiguration.XMLLoader xmlLoader = new oracle.toplink.tools.sessionconfiguration.XMLLoader("META-INF/sessions.xml");
// oracle.toplink.tools.sessionmanagement.SessionManager sessionManager = oracle.toplink.tools.sessionmanagement.SessionManager.getManager();
// DatabaseSession session = (DatabaseSession)sessionManager.getSession(xmlLoader, "MySessionName", employeesClient.getClass().getClassLoader());
// To use sessions.xml as defined above, comment out the following three lines of code.
oracle.toplink.sessions.Project project = XMLProjectReader.read("path_to_your/toplink-deployment-descriptor.xml");
DatabaseSession session = project.createDatabaseSession();
session.login();
Vector objects = session.readAllObjects(selectfun.Employees.class);
for (Iterator itr = objects.iterator();itr.hasNext();)
{
employeesClient.printObjectAttributes(itr.next());
}
}
public List getEmployees()
{
EmployeesClient employeesClient = new EmployeesClient();
// 要使用 sessions.xml,请取消注释以下三行代码,填写相应的资源位置并向 classpath 中添加 sessions.xml。
// oracle.toplink.tools.sessionconfiguration.XMLLoader xmlLoader = new oracle.toplink.tools.sessionconfiguration.XMLLoader("META-INF/sessions.xml");
// oracle.toplink.tools.sessionmanagement.SessionManager sessionManager = oracle.toplink.tools.sessionmanagement.SessionManager.getManager();
// DatabaseSession session = (DatabaseSession)sessionManager.getSession(xmlLoader, "MySessionName", employeesClient.getClass().getClassLoader());
// 要使用上面定义的 sessions.xml,请取消注释以下三行代码。
oracle.toplink.sessions.Project project = XMLProjectReader.read("
path_to_your/toplink-deployment-descriptor.xml");
DatabaseSession session = project.createDatabaseSession();
session.login();
Vector objects = session.readAllObjects(selectfun.Employees.class);
for (Iterator itr = objects.iterator();itr.hasNext();)
{
try
{
Field field = itr.next().getClass().getDeclaredField("email");
Field field = itr.next().getClass().getDeclaredField("email");
field.setAccessible(true);
valfield.setAccessible(true);
employees.add(new SelectItem( valfield.get(itr.next()).toString(), field.get(itr.next()).toString()));
} catch (Exception ex)
{
ex.printStackTrace();
}
}
}
我们现在将使用原始的 JSF 引用实现 (RI) 用户界面组件构建一个简单的视图。在相关的后续方法文档中,您将学习如何使用 Oracle 的 ADF Faces JSF 组件构建一个相似的视图。
重要声明:请注意,该应用程序将在 JSF 自动绑定处于关闭的情况下构建。这是一个用于自动绑定页面以及您拖放到 JSF 页面的任何 JSF 组件的选项,但本方法文档演示了如何手动绑定 JSF 页面。继续前,请确保通过取消选中 JSP 和 HTML 可视化编辑器首选设置中的“Autobind JSF..”设置关闭 JSF Auto-Binding 选项。
有关详细信息,请参阅我的网志条目,网址是:http://radio.weblogs.com/0130966/2005/01/05.html#a28
单击 OK 后,该向导将插入父标记 h:selectOneMenu 以及子标记(用户界面组件) <f:selectItem>,且该向导中定义了静态值。
要绑定 List Menu,首先在可视化编辑器中选择它,单击 Property Inspector 中的“Value”属性,单击数据绑定图标 ,然后再次单击 Value 属性。这将添加一个空的 JSF 表达式以及一个按钮来调用 JSF 值绑定程序对话框
。单击这个新按钮以调用该对话框。然后,可以将 Value 属性绑定到 #{Model.selectedcountry}。
单击 OK 将把子标记 f:selectItems 绑定到 getEmployees 方法(返回从 TopLink 中生成的列表)。
在本方法文档中您可以看到,将 JSF 选择组件用于静态或动态源是一个非常简单直接的过程。该示例只介绍了如何使用多个 JSF 选择组件之一,您可以随意试用各种其他 JSF 选择组件。
除了使用提供的 JSF RI 组件以外,还可以使用 Oracle 的 ADF Faces JSF 组件。OTN 上还提供了一篇后续方法文档使用 ADF Faces JSF 选择组件,该文档介绍了如何使用 ADF Faces JSF 组件构建一个具有静态和动态选择组件的相似视图。建议读者查看该文档!
热门下载 | ||