如何使用<f:ajax>执行另一个<h:form>?</f:ajax> </h:form>

时间:2011-12-14 08:19:49

标签: ajax jsf-2

我注意到这对我不起作用,我想知道这是不可能的:

<h:form id="one" prependid="false" >
  <h:commandButton>
    <f:ajax execute=":two">
  </h:commandButton>
</h:form>

<h:form id="two" prependid="false">
  ... content ...
</h:form>

每当我点击上面的按钮时,我都会看到two形式的值未按预期执行。 这是正常的JSF行为吗? 为了“欺骗”它,我通常会在two形式中插入一个隐藏按钮,并在单击one形式的按钮时使用JavaScript代码触发它。但这是一个“技巧”,当我不确定我必须这样做时,我会额外工作。

我应该提到render另一种形式是可能的。

prependid属性是否会导致问题?

提前致谢!

更新添加可能相关的更多信息 - 将prependid="false"添加到表单中,因为它在实际代码中使用。

1 个答案:

答案 0 :(得分:3)

不,<f:ajax>无法做到这一点。它只是提交父表单。 execute只告诉JSF它必须根据提交的数据处理哪些组件,而不是客户端必须发送哪些请求参数。按钮确实以它所属的形式出现。