gpt4 book ai didi

java - AdfPage.PAGE.findComponentByAbsoluteId 返回 null

转载 作者:行者123 更新时间:2023-11-30 18:35:04 30 4
gpt4 key购买 nike

我正在尝试在页面呈现过程进行时执行一些 javascript。代码是:

    <af:document title="Page1" id="d1">
<af:resource type="javascript" source="/resources/js/jquery-1.3.2.js"/>
<af:form id="f1">
<af:panelStretchLayout id="psl1">
<f:facet name="center">
<af:panelGroupLayout id="pgl1">
<af:panelGroupLayout id="main" styleClass="AFStretchWidth" layout="vertical" clientComponent="true">
<af:clientListener method="onMainClick" type="click"/>
<af:serverListener type="clickOnMain" method="#{bean.someMethod}"/>
</af:panelGroupLayout>
</af:panelGroupLayout>
</f:facet>
</af:panelStretchLayout>

<af:resource type="javascript">
var main = AdfPage.PAGE.findComponentByAbsoluteId('main');
alert(main);
if(main != null) {
ActionEvent.queue(main, true);
}
</af:resource>
<af:resource type="javascript">
onMainClick = function (event) {
AdfCustomEvent.queue(event.getSource(), "clickOnMain", {}, true);
}
</af:resource>
</af:form>
</af:document>

但是 alert() 显示为“null”,最终下一个 ActionEvent.queue 没有执行。

谁能告诉我如何解决这个问题?

最佳答案

看起来您找到了解决方案。

https://forums.oracle.com/forums/thread.jspa?threadID=2319943

<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:f="http://java.sun.com/jsf/core" xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
<jsp:directive.page contentType="text/html;charset=UTF-8"/>
<f:view>
<af:document title="Page1" id="d1" clientComponent="true">
<af:resource type="javascript" source="/resources/js/jquery-1.3.2.js"/>
<af:form id="f1">
<af:panelStretchLayout id="psl1">
<f:facet name="center">
<af:panelGroupLayout id="pgl1">
<af:panelGroupLayout id="main" styleClass="AFStretchWidth" layout="vertical" clientComponent="true">
<af:clientListener method="onMainClick" type="click"/>
<af:serverListener type="clickOnMain" method="#{college.onLoad}"/>
</af:panelGroupLayout>
</af:panelGroupLayout>
</f:facet>
</af:panelStretchLayout>
</af:form>
<af:resource type="javascript">
onBodyLoad = function (event) {
fireEvent(document.getElementById(AdfPage.PAGE.findComponentByAbsoluteId('main').getClientId()), 'click');
}
fireEvent = function (element, eventType) {
if (element.fireEvent) {
element.fireEvent('on' + eventType);
}
else {
var eventObj = document.createEvent('Events');
eventObj.initEvent(eventType, true, false);
element.dispatchEvent(eventObj);
}
}
onMainClick = function (event) {
AdfCustomEvent.queue(event.getSource(), "clickOnMain",
{
},true);
}
</af:resource>
<af:clientListener method="onBodyLoad" type="load"/>
</af:document>
</f:view>
</jsp:root>

关于java - AdfPage.PAGE.findComponentByAbsoluteId 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8457265/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com