我在门户环境中使用 JSF 页面。如果我使用 a valueChangeListener
,除非我使用onclick="submit()"
. 这提交了我不想要的页面。情况也是如此actionListner
。
此外,如果我使用ajaxRefreshSubmit
,则提交我的整个页面,而不是提交使用 的指定部分ajaxRefreshSubmit
。
为什么会有这种行为?是因为我们在门户环境中使用它,还是我们错过了配置文件中的某些内容?
我在门户环境中使用 JSF 页面。如果我使用 a valueChangeListener
,除非我使用onclick="submit()"
. 这提交了我不想要的页面。情况也是如此actionListner
。
此外,如果我使用ajaxRefreshSubmit
,则提交我的整个页面,而不是提交使用 的指定部分ajaxRefreshSubmit
。
为什么会有这种行为?是因为我们在门户环境中使用它,还是我们错过了配置文件中的某些内容?
只有当valueChangeListener
您将表单提交到服务器时才会运行。认为它在客户端运行确实是 JSF 初学者的主要误解之一。它不是在网络浏览器中运行的 HTML 或 JavaScript 代码的一部分。它是在网络服务器中运行的 Java/JSF 代码的一部分。所以客户端必须以某种方式从网络浏览器向网络服务器发送请求。提交表格是其中一种方式。
对于剩余部分,我没有什么要说的,ajaxRefreshSubmit
因为那是特定于我不使用的 IBM 组件库(也不能,因为它不是开源的,也不是免费提供的)。如果您在 Stackoverflow 上没有得到更多回复,那么您最好的选择可能是在他们自己的developerworks论坛上发布问题。它只是不像这里那样活跃和高质量。
<h:form id="toilclaimform">
<h:panelGroup id="container">
<!-- Read only version -->
<hx:commandExButton type="button" id="testButton2" value="Submit" styleClass="hideRefreshToil" onmousedown="$.resourceManUtilities.formRefreshCookie()" >
<hx:behavior event="onclick" id="behavior3" behaviorAction="get" targetAction="container" ></hx:behavior>
</hx:commandExButton>
<hx:commandExButton onmousedown="runToilVal()" onmouseup="$.resourceManUtilities.formSubmitCookie()" type="submit" id="testButton" value="Submit" styleClass="rmButtons" action="#{toilClaimBean.submit}">
<hx:behavior event="onclick" id="behavior2" behaviorAction="get" targetAction="container" ></hx:behavior>
</hx:commandExButton>
</h:panelGroup>
</h:panelGroup>
<hx:ajaxRefreshSubmit id="ajaxRefreshRequest1" onstart="$.resourceManUtilities.ajaxLoadingStarting('form')" oncomplete="$.resourceManUtilities.ajaxFormSubmit('hideRefreshToilList')" target="container"></hx:ajaxRefreshSubmit>
</h:form>
使用此库时,您知道不再使用标准命令按钮,而是使用 hx 命令按钮,上面的代码中有一个示例。使用此按钮将确保您不会获得完整的 pagr 刷新,并将更新所需的 portlet。
干杯