really supposed to do?它仅过帐封闭表格-6ren"> really supposed to do?它仅过帐封闭表格-抱歉,如果我很胖,但是f:ajax标记中的execute =“@ all”到底应该做什么?我希望它提交页面上的所有元素,但似乎只张贴封闭表格中的值,而不是页面上的所有表格。 例如 -6ren">
gpt4 book ai didi

ajax - 什么是 really supposed to do?它仅过帐封闭表格

转载 作者:行者123 更新时间:2023-12-04 03:34:57 24 4
gpt4 key购买 nike

抱歉,如果我很胖,但是f:ajax标记中的execute =“@ all”到底应该做什么?我希望它提交页面上的所有元素,但似乎只张贴封闭表格中的值,而不是页面上的所有表格。

例如

<h:body>
<h:form id="form1">
Input1/Form1 <h:inputText id="testinput" value="#{testBean.input1}" />
</h:form>

<h:form id="form2">
Input2/form2 <h:inputText id="testinput2" value="#{testBean.input2}" />
<h:commandButton value="Ok" actionListener="#{testBean.al}">
<f:ajax execute="@all" />
</h:commandButton>
</h:form>
</h:body>

单击仅发布form2。

使用mojarra 2.0.2。

最佳答案

在设计JSF2规范期间,execute="@all"只是一个主要的疏忽。 JSF过多地抽象了其基于HTML表单的本质,忘记了它实际上实际上是HTML代码生成器。
HTML中,提交与封闭的表单不同的表单是不允许的。因此,从该角度来看,execute="@all"将永远无法工作。它的行为与execute="@form"完全相同。鉴于JSF只是HTML代码生成器,同样的“问题”也将影响JSF。无法一次处理多个<h:form>组件。
如果由于某些原因确实需要此功能,则应退后一步,重新考虑如何看待HTML表单的错误方式。您需要确保表单的设计方式使您永远不需要其他表单的信息。
也可以看看:

  • How to use <h:form> in JSF page? Single form? Multiple forms? Nested forms?

  • PrimeFaces早就意识到 @allfundamentally wrong。这就是为什么他们从不支持 @all属性中的 process的原因,等效于 execute。他们最初也不支持 @all中的 update,相当于 render。但是,在现实世界中唯一有意义的用例是在ajax异常期间处理完整的错误页面,因此在我创建 update="@all" 之后,他们最终将 FullAjaxExceptionHandler带回了。 process="@all"仍然具有与 process="@form"完全相同的效果。
    但是,相同的PrimeFaces库也通过其后来引入的 execute="@all" 功能无意中使 partialSubmit="true"的行为成为可能,通过该功能您可以显式指定如下所示的所有其他形式( PFS @(form)仅用于简化,也可以使用诸如 :formId1 :formId2 :formId3等的硬编码集合, )。
    <p:commandButton ... process="@(form)" partialSubmit="true" />
    这是可行的,因为 partialSubmit="true"在客户端而不是服务器端准备 process="xxx"。换句话说,它不是将整个封闭表单从服务器发送到客户端,然后再处理指定的输入,而是仅将指定的输入从服务器发送到客户端,然后对它们进行全部处理。请注意,当不存在 partialSubmit或将其设置为 false时,它仍将仅发送封闭表格。不应依赖这种不当行为。他们迟早会纠正这种不当行为。
    也可以看看:
  • Any significant technical difference between JSF non-AJAX submit and a "@all" AJAX submit?
  • Understanding PrimeFaces process/update and JSF f:ajax execute/render attributes
  • 关于ajax - 什么是<f :ajax execute ="@all"> really supposed to do?它仅过帐封闭表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2999101/

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