在使用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_Faces
但是如果状态信息不需要维护会有若干优点,最重要的是可以避免集群中节点间的状态复制,或者避免使用粘性会话保证请求返回至发起节点。与上述优点相比,提升框架性能和降低内存消耗等经常被提及的优点就不是那么确定...
使用JSF开发基于Ajax的富客户端组件的文档
ADF Faces rich client Demo .可在包括Tomcat 6.x在内的Web服务器中直接部署运行
1、JavaServer Faces API(1.2)<br>2、JavaServer Faces Tag Library Documentation<br>3、ADF WebControls Java API <br>4、ADF Tag Library Documentation<br>(chm格式)
博文链接:https://hunte.iteye.com/blog/123559
ADF配置文件和标签,有了它,你就可以配置起来你的ADF啦
oracle ADF开发指南第一章<br>Oracle® Application Development Framework<br>Developer’s Guide For Forms/4GL Developers<br>10g Release 3 (10.1.3.0)<br>B25947-01
ADF开发必读:oracle JDeveloper Application开发框架和开发工具的使用
了解_Oracle_ADF:入门示例:项目是一个简单的学生会银行帐户。所需的基本功能是输入和编辑支出与存款。
// 移频选频原理<br>//Fvco=[(P*B)+A]*Frefin/R<br>//P=32<br>//loop filter 100k----prescribe<br>//R=12.8M/100K=128---Parameter1<br>//Fvco=频点*2+170280 -1400<br>//B=Fvco/32-----------Parameter2<br>//A=...
ADF框架简介 ADF业务组件 ADF模型 ADF Task Flow ADF用户界面 ADF Faces生命周期与事件处理 安全性 实践
ADF4351配置程序,主要是C51配置ADF5351/4350
程序名:ADF4351锁相环频率锁定 程序员:RedClown 时间: 2018/10/13 功能: 频率输出 可用频率范围为80—400MHz 引脚: LCD12864: RS===========>P9^0 RW===========>P9^1 EN===========>P9^2 PSB====...
adf4351 用于ADF4351宽带频率合成器芯片的Arduino库 介绍 该库支持Analog Devices的。 该芯片是宽带(35 MHz至4.4 GHz)锁相环(PLL)和压控振荡器(VCO),在数字控制下覆盖了非常宽的频率范围。 只需添加一个外部...
ADF7241是一款高集成度的低功耗、高性能收发器,在全球通用的2.4 GHz ISM频段工作。其设计注重灵活性、鲁棒性、易用性和低功耗特性。在数据包和数据流两种模式下,均支持IEEE 802.15.4-2006 2.4 GHz PHY要求。而且只...
n 快速的手工SVG徽章生成器。... labelColor : 'ADF' , // <Color> or <Color> (default: '555') status : 'v1.2.3' , // <Text>, required color : 'blue' , // <Color> or <Color> (default: 'blue')