我们已经构建了一个Xpage应用程序,其中包含一个选项卡式容器。选项卡容器的第一页包含一个视图,当单击此视图中的文档时,具有相应文档的新选项卡将添加到选项卡容器中。这个新选项卡页包含一个具有scr属性的面板,要显示的页面的url将提供给此面板的src属性。结果是我们有了一个带有iframe的标签页,iframe包含我们的文档页面。
问题:
在这个iframe中,我们需要从我们的父网页中获取一个组件(SSJS或Java)。在这种情况下,getComponent函数不起作用,因为它只会在当前组件树( iFrame而不是父页面)中进行搜索。
我正在寻找一种从父页面获取组件的方法...
对于如何实现这一点有什么想法吗?
谢谢:-)
发布于 2015-07-31 18:51:51
1)创建托管bean
package mypackage;
import javax.faces.component.UIComponent;
public class MyComponentBean {
private UIComponent component;
public void setComponent(UIComponent component) {
this.component = component;
}
public UIComponent getComponent() {
return component;
}
}2)将托管bean添加到sessionScope中的faces-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<faces-config>
<managed-bean>
<managed-bean-scope>session</managed-bean-scope>
<managed-bean-name>componentBean</managed-bean-name>
<managed-bean-class>mypackage.MyComponentBean</managed-bean-class>
</managed-bean>
</faces-config>3)将bean作为绑定添加到第1页上的组件
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:inputText
id="inputText1"
binding="#{componentBean.component}">
</xp:inputText>
<xp:br />
<xp:button
value="Label"
id="button1">
<xp:eventHandler
event="onclick"
submit="true"
refreshMode="partial" refreshId="inputText1">
</xp:eventHandler>
</xp:button>
</xp:view>4)访问第2页上的组件(本例中为组件的值)
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:label
value="#{componentBean.component.value}"
id="label1">
</xp:label>
<xp:br />
<xp:button
value="Label"
id="button1">
<xp:eventHandler
event="onclick"
submit="true"
refreshMode="partial" refreshId="label1">
</xp:eventHandler>
</xp:button>
</xp:view>https://stackoverflow.com/questions/31743897
复制相似问题