Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
值更改侦听器,ajax_Ajax_Jsf_Websphere Portal - Fatal编程技术网

值更改侦听器,ajax

值更改侦听器,ajax,ajax,jsf,websphere-portal,Ajax,Jsf,Websphere Portal,我正在门户环境中使用JSF页面。如果我使用valueChangeListener,除非我使用onclick=“submit()”,否则不会在支持bean中调用该方法。这提交了我不想要的页面。actionListner的情况也是如此 另外,如果我使用ajaxRefreshSubmit,我的整个页面都会被提交,而不是提交使用ajaxRefreshSubmit的指定部分 为什么会有这种行为?这是因为我们在门户环境中使用它,还是因为我们在配置文件中遗漏了什么?只有当您将表单提交到服务器时,valueCh

我正在门户环境中使用JSF页面。如果我使用
valueChangeListener
,除非我使用
onclick=“submit()”
,否则不会在支持bean中调用该方法。这提交了我不想要的页面。
actionListner
的情况也是如此

另外,如果我使用
ajaxRefreshSubmit
,我的整个页面都会被提交,而不是提交使用
ajaxRefreshSubmit
的指定部分


为什么会有这种行为?这是因为我们在门户环境中使用它,还是因为我们在配置文件中遗漏了什么?

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

对于剩下的部分,我没有任何关于
ajaxRefreshSubmit
的话要说,因为这是特定于IBM组件库的,我不使用它(也不能使用它,因为它既不是开源的,也不是免费提供的)。如果你在Stackoverflow没有得到更多的回复,那么你最好的办法就是在他们自己的论坛上发布这个问题。它不仅没有这里那么活跃和高质量。



使用此库时,您知道不再使用标准命令按钮,而是使用hx命令按钮,上面的代码中有一个示例。使用此按钮将确保不会获得完整的pagr刷新,并将更新所需的portlet


干杯

但我注意到一件事,价值观在这里发生了变化。首先调用construtor,然后它进入方法。这是预期的行为吗?如果是请求范围的bean,则是。另一方面,如果您的IBM组件库提供了基于ajax的组件,那么触发部分提交可能更有用。只是由于缺少文档,而且无法免费获得,我无法回答如何使用它们。
                        <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>