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