精华网络内容 :http://www.qqread.com/network/
第 2 阶段:创建初始视图
第 6 步:使用初始的 faces-config.xml 文件。在首次打开应用程序时,打开 Web Content/WEB-INF 文件夹和所创建的 faces-config.xml 文件。如果由于某种原因尚未创建配置文件,则右键单击 ViewController 项目并选择 New/Web Tier/JSF/JSF Page Flow & Configuration。faces-config.xml 的默认名称是正确的。如果您选择 Overview 选项卡,将看到配置文件的空白视图:在 JSF 应用程序中,该视图是进入中央配置文件的重要窗口。除了一组描述用户如何在 Faces 应用程序中从一个页面转换到另一个页面的 XML 元素以外,还有用于 Bean 的元素,这些 Bean 包括在用户与界面控件(辅助 Bean)交互时调用其方法的 Bean,以及用于存储长久信息(如用户状态)的 Bean。
第 7 步:创建初始导航图和对应页面。(另请参阅 Oracle ADF 教程 3-2。)现在,需要一组初始页面(主要基于 SRDemo 中使用的页面模板),以及描述用户如何从一个页面转移到另一个页面的初始导航规则。选择针对 faces-confix.xml 文件的 Diagram 选项卡,确保 Configuration 选项板处于开启状态,然后将 JSF 页面拖到配置图上。此时,您已经在配置文件(而不是页面)中创建了一个导航元素。
双击无标题页面图标,以启动一个将实际创建文件的向导。将名称更改为 index;将文件后缀更改为 jspx(Oracle 的普遍建议);确保系统没有自动公开该页面的 UI 组件;然后移动 ADF Faces 组件、JSF 内核、ADF Faces 和 JSF HTML 库。选择您喜欢的 HTML 版本 — 我们在 4.0.1 Transitional 版上运行良好。
index.jspx 将重定向到应用程序的实际第一页,这是创建 Web 应用程序的标准做法。这可能会创造一个糟糕的先例,但可以在 Source 窗口中查找 index.jspx,并用以下 scriptlet 替换 f:view 标记。注意,您要创建一个目录结构来管理页面 — 管理涵盖所有应用程序的所有页面,而名为 campusaccounts 的子目录将用于保存该项目的所有页面。将 scriptlet 插入 index.jspx 文件之后,您就可以安全地保存并关闭该文件了。
<jsp:scriptlet>
response.sendRedirect("faces/administration/welcome.jspx");
</jsp:scriptlet>
从 Component 选项板中,将另一个 JSF 页拖到 faces-config.xml 图上。双击图标打开向导,以设置其 jsp 页面。将名称更改为 welcome,将文件类型更改为 jspx — 并确保设置目录,以创建您希望创建的任何子目录结构。例如,在本案例中,我们将目录设置为 ../public_html/administration,以便对应于 sendRedirect。移动选项应该与创建 index.jspx 时所使用的移动选项相同,HTML 版本也应该相同。
将内容添加到 JSP 页面实际上就是在 Diagram、Property Editor 和 Structure 窗口之间切换。有时,您甚至可以通过 Source 窗口编辑页面。在 Structure 窗口中,打开 faces 视图元素并删除默认的 f:view 标记,以便能够使用包含面板页的以下文本替换它。面板页是一个复杂的 UI 控件,它包含页眉、页脚、用于选择帮助的全局控件以及版权部分等内容。在使用该页时,您将发现使用标准界面组件创建复杂页面是多么轻松。粘贴文本的最简单方法就是切换到 Source 窗口,并确保游标跟随文件开头的三个 jsp 标记。
<f:view>
<f:loadBundle basename="edu.uwec.financial.resources.UIResources"
var="res"/>
<af:document title="#{res['uacct.campusAccounts.title']}"
initialFocusId="start">
<af:form>
<af:panelPage>
<!-- Page Content End -->
<f:facet name="branding">
<af:panelHorizontal>
<af:objectImage source="/images/banner.jpg"/>
</af:panelHorizontal>
</f:facet>
<f:facet name="menu1">
<af:menuTabs var="menuTab" value="#{menuModel.model}">
<f:facet name="nodeStamp">
<af:commandMenuItem text="#{menuTab.label}"
action="#{menuTab.getOutcome}"
rendered="#{menuTab.shown and menuTab.type=='default'}"
disabled="#{menuTab.readOnly}"/>
</f:facet>
</af:menuTabs>
</f:facet>
<f:facet name="menu2">
<af:menuBar/>
</f:facet>
<f:facet name="menuGlobal">
<af:menuButtons>
<af:commandMenuItem text="#{res['uacct.menu.logout']}"
action="GlobalLogout" immediate="true"
icon="../images/blafIcons/logout.gif"/>
<af:commandMenuItem text="#{res['uacct.menu.help']}"
action="GlobalHelp" immediate="true"
icon="../images/blafIcons/help.gif"/>
</af:menuButtons>
</f:facet>
<f:facet name="messages">
<af:messages/>
</f:facet>
<f:facet name="appCopyright">
<!--Copyright msg-->
<h:panelGroup>
<af:objectSpacer width="10" height="10" id="objectSpacer4"/>
<af:panelHorizontal halign="center">
<af:outputText value="#{res['uacct.copyright']}"/>
</af:panelHorizontal>
</h:panelGroup>
</f:facet>
<f:facet name="appAbout">
<!-- The About this Application Link-->
<af:panelHorizontal halign="center">
<af:commandLink text="#{res['uacct.about']}" action="GlobalAbout"
immediate="true"/>
</af:panelHorizontal>
</f:facet>
<f:facet name="infoUser">
<!-- Show the Logged in user -->
<h:outputFormat value="#{res['uacct.connectedUser']}"
rendered="#{userInfo.authenticated}" escape="false">
<f:param value="#{userInfo.userName}"/>
</h:outputFormat>
</f:facet>
</af:panelPage>
</af:form>
</af:document>
</f:view>
您将注意到 Structure 窗口中报告了错误,这些错误将在下一步中解决。
相关专题
- Solaris基础知识入门 (4590篇文章)
- Oracle 10g基础应用 (4414篇文章)
- Oracle基础 (359篇文章)
- Oracle初学者必知的100个问题 (33377次浏览)
- Oracle PL/SQL语言基础 (14253次浏览)
- Oracle架构的基础知识(入门级) (13523次浏览)
- Win 2003 Server重新安装Oracle9i (614次浏览)
- Oracle优化的五个方面 (613次浏览)
- 多个Oracle数据库创建一个Excel报表 (554次浏览)
- 怎么样快速复制表或者是插入数据 (527次浏览)
- 解决Oracle中Exp/Imp大量数据处理问题 (526次浏览)
- 重启系统的时候自动启动oracle服务 (396次浏览)
- 记几个容易忘的oracle 函数 (366次浏览)



