`

ADF Faces: 避免使用<jsp:include>标签

阅读更多

在使用ADF进行应用程序的开发时,应该避免使用<jsp:include>标签来包含子的ADF Faces页面,因为:

1. 子页面中的控件ID有可能会和父页面的控件ID冲突;

2. 不能将子页面作为一个局部刷新对象,因为不支持partialTriggers属性;

3. 不能使用JSF的表达式语言动态传递参数给子页面,因为<jsp:param/>是为JSP设计的,不支持动态传递参数;

4. 不能使用MDS来客户化<jsp:include/>标签。

 

所以,应该使用ADF提供的<af:declarativeComponent>标签,因为:

1. 该标签是一个有自己ID的命名容器,父子页面不会发生控件ID冲突;

2. 该标签支持partialTriggers属性,所以可以将其设置为一个局部刷新对象;

3. 可以使用<f:attribute/>标签,动态传递参数给子页面;

4. 可以使用MDS客户化该标签。

 

所以,替换下面的代码

<jsp:include page="/includes/myIncludeFragment.jsff">
  <jsp:param name="myParam" value="myValue"/>
</jsp:include>

<af:declarativeComponent id="dc0" viewId="/includes/myIncludeFragment.jsff" myParam="myValue"/>

 

注意,标签中使用了myParam属性,这个属性必须定义到申明式控件的定义文件中,如下:

<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:f="http://java.sun.com/jsf/core"
          xmlns:af="http://xmlns.oracle.com/adf/faces/rich" version="2.1">
    <af:componentDef var="attrs">
        <af:xmlContent>
            <component xmlns="http://xmlns.oracle.com/adf/faces/rich/component">
                <description>my fragment</description>
                <attribute>
                    <attribute-name>myParam</attribute-name>
                    <attribute-class>java.lang.String</attribute-class>
                    <required>true</required>
                </attribute>
            </component>
        </af:xmlContent>
        <!-- Actual content goes here-->
        <af:outputText value="#{attrs.myParam}"/>
    </af:componentDef>
</jsp:root>

 

补充说明:

关于上面提到的控件ID冲突的问题,也可以通过使用<f:subview/>标签包含子页面来解决。但是不论使用<af:declarativeComponent/>标签还是<f:subview/>标签,都会有另外一个问题:子页面的页面定义文件(Page Definition File)不会被读取,也就是说,子页面和父页面共享父页面的页面定义文件,而没有单独的页面定义文件。

所以如果子页面需要单独的页面定义文件,那么就需要使用ADF template或者Region了。

 

原文来自以下链接:

https://blogs.oracle.com/jheadstart/entry/avoid_use_of_jspinclude_where

分享到:
评论

相关推荐

    ADF上传下载

    - **方式二**:使用`&lt;af:inputFile&gt;`控件绑定到管理Bean中的属性,并通过`action`属性调用管理Bean中的方法处理上传逻辑。 ```xml &lt;af:form usesUpload="true"&gt; &lt;af:inputFile label="Upload:" value="#{...

    Oracle ADF faces rich client 11g 开发文档

    本篇文档旨在详细介绍如何使用ADF Faces Rich Client 11g进行基于Ajax的富客户端组件开发。 #### 二、基础知识 ##### 1. JavaServer Faces (JSF) - **定义**:JSF是一种用于构建企业级Web应用程序的标准Java EE技术...

    arcims9.2 adf java 开发简单实例图解2

    &lt;class&gt;oracle.adf.model.application.ApplicationModuleListener&lt;/class&gt; &lt;/component-classes&gt; &lt;/application&gt; ``` 这一步骤是为了确保 ADF 应用程序能够正确初始化。 ##### 3.2 context-attributes.xml 文件...

    ADF Faces rich client Demo

    通过分析和运行这个演示应用,开发者可以直观地了解如何在实际项目中使用这些组件,以及如何在不同Web服务器上部署ADF Faces应用。 总结来说,"ADF Faces rich client Demo"是一个展示ADF Faces Rich Client组件...

    arcims9.2 adf java 开发简单实例图解3

    &lt;client-side-execution&gt;false&lt;/client-side-execution&gt; &lt;/command&gt; &lt;!-- 其他配置 --&gt; &lt;/application&gt; ``` 4. **在JSP页面中调用命令**: - 在JSP页面中添加按钮,并将其绑定到自定义命令上: ```jsp ...

    arcgisserver精典讲座系列之二--Web ADF

    然后,在页面中使用 `&lt;a:context&gt;`、`&lt;a:map&gt;`、`&lt;a:toc&gt;` 等标签来定义 Web ADF 控件及其属性。例如,定义一个地图和一个图层目录: ```jsp &lt;f:view&gt; &lt;h:form id="f"&gt; &lt;a:context value="#{mapContext}"/&gt; ...

    Oracle_ADF_Faces

    ADF_Faces

    Java ADF开发入门-简单ArcGIS Server Web ADF应用

    本教程将带你逐步了解如何使用Java ADF开发一个简单的Web应用程序,允许用户进行地图的基本操作,如缩放、平移和全屏显示。 首先,你需要准备数据。在%ARCGISHOME%\java\samples\data\mxds目录下,有一个名为usa....

    ADF培训_10_JSFIntroduction_2009

    JavaServer Faces (JSF) 和 ADF Faces 是两种在企业级Web开发中广泛使用的框架,尤其在Oracle ADF(Application Development Framework)环境中。本部分将深入探讨这两个框架的基础知识、架构以及它们如何协同工作。...

    jboss as 7 support jsf2.2.1 modules

    但是如果状态信息不需要维护会有若干优点,最重要的是可以避免集群中节点间的状态复制,或者避免使用粘性会话保证请求返回至发起节点。与上述优点相比,提升框架性能和降低内存消耗等经常被提及的优点就不是那么确定...

    weblogic设置session超时时间

    在 `web.xml` 文件中,可以使用 `&lt;session-config&gt;` 元素来设置 Session 超时时间。 例如: ``` &lt;session-config&gt; &lt;session-timeout&gt;54&lt;/session-timeout&gt; &lt;/session-config&gt; ``` 上面的代码将 Session 超时时间...

    adf BEAN传参数

    可以通过&lt;f:setPropertyActionListener&gt;标签将参数直接传递给Bean的属性。当页面上的组件触发动作时,可以通过设置一个目标属性并赋值给这个属性。 示例代码: ```xml &lt;h:commandButton actionListener="#{...

    Oarcle ADF Security下配置不受保护的JSP页面

    &lt;url-pattern&gt;/unprotectPageTest.jsp&lt;/url-pattern&gt; &lt;/security-role-mapping&gt; ``` 3. **配置受保护的资源**:在adf-security.xml中,你需要明确指出哪些资源(如JSP页面)是不受保护的。上例中的`/...

    ADF学习文档

    声明式组件允许ADF Faces开发者基于现有的组件构建新的复合ADF Faces UI组件。Oracle JDeveloper 11会自动生成所有所需的标签库文件和部署工件,使得这些组件可以在其他Web项目中重用。为了与外部世界进行通信,声明...

    使用jQuery和ADF提供淡出的用户反馈

    例如,可以在ADF页面的 `&lt;af:clientListener&gt;` 或 `&lt;af:clientBehavior&gt;` 标签中添加事件监听器,以在特定的用户交互(如按钮点击)时执行jQuery代码: ```xml &lt;af:button text="提交反馈" action="#{bean....

    JSF与ADF-TAG&API

    1、JavaServer Faces API(1.2)&lt;br&gt;2、JavaServer Faces Tag Library Documentation&lt;br&gt;3、ADF WebControls Java API &lt;br&gt;4、ADF Tag Library Documentation&lt;br&gt;(chm格式)

    arcgis_server

    - **例子**:通过实际案例展示如何使用ADF进行开发。 - **文档**:详细介绍了ADF的使用方法和最佳实践。 #### ADF的架构与工作原理 ADF采用了一种基于模型-视图-控制器(MVC)的设计模式。这种架构将应用分为三个...

    Facelets

    3. **页面模板与组件**:Facelets 提供了一种基于 XML 的模板语言,允许你在 `template.xhtml` 中定义页面布局,然后在其他页面如 `guess.xhtml` 和 `response.xhtml` 中使用 `&lt;ui:include&gt;` 或 `&lt;ui:insert&gt;` 指令...

    ADF实现多选框及分页

    在Oracle Application Development Framework (ADF) 中,开发人员可以利用丰富的组件库来构建高效且用户友好的企业级应用。本文将详细解析如何在ADF中实现多选框功能和分页效果,特别是针对Table组件的运用。 首先...

Global site tag (gtag.js) - Google Analytics