0

我在门户环境中使用 JSF 页面。如果我使用 a valueChangeListener,除非我使用onclick="submit()". 这提交了我不想要的页面。情况也是如此actionListner

此外,如果我使用ajaxRefreshSubmit,则提交我的整个页面,而不是提交使用 的指定部分ajaxRefreshSubmit

为什么会有这种行为?是因为我们在门户环境中使用它,还是我们错过了配置文件中的某些内容?

4

2 回答 2

1

只有当valueChangeListener您将表单提交到服务器时才会运行。认为它在客户端运行确实是 JSF 初学者的主要误解之一。它不是在网络浏览器中运行的 HTML 或 JavaScript 代码的一部分。它是在网络服务器中运行的 Java/JSF 代码的一部分。所以客户端必须以某种方式从网络浏览器向网络服务器发送请求。提交表格是其中一种方式。

对于剩余部分,我没有什么要说的,ajaxRefreshSubmit因为那是特定于我不使用的 IBM 组件库(也不能,因为它不是开源的,也不是免费提供的)。如果您在 Stackoverflow 上没有得到更多回复,那么您最好的选择可能是在他们自己的developerworks论坛上发布问题。它只是不像这里那样活跃和高质量。

于 2010-08-27T13:52:05.333 回答
0

                        <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。

干杯

于 2011-04-19T14:03:13.913 回答