我注意到这对我不起作用,我想知道这是不可能的:
<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"
添加到表单中,因为它在实际代码中使用。
答案 0 :(得分:3)
不,<f:ajax>
无法做到这一点。它只是提交父表单。 execute
只告诉JSF它必须根据提交的数据处理哪些组件,而不是客户端必须发送哪些请求参数。按钮确实以它所属的形式出现。