使用h:commandButton进行Ajax更新和提交。

6
如何使用<h:commandButton>更新一个div并进行部分提交?我之前使用<p:commandButton>将ajax属性设置为true并将update属性设置为:statusBlock,其中<h:panelGroup>的id为statusBlock,以进行部分提交。由于一些设计问题,我不能再使用<p:commandButton>,因此必须使用<h:commandButton>
2个回答

29

这可以通过在其中嵌套<f:ajax>来完成。

实际上,

<p:commandButton ... process="@form" update=":statusBlock" />

与...完全相同

<h:commandButton ...>
    <f:ajax execute="@form" render=":statusBlock" />
</h:commandButton>

请注意,与PrimeFaces相比,<f:ajax>的默认值为@this,而PrimeFaces在process/execute中的默认值为@form。因此,在PrimeFaces组件中没有指定process属性的所有位置上,您可能需要明确指定execute="@form"

另请参阅:


h:commandButton 中的 execute 和 process 属性是用来做什么的? - Wizard Sultan
5
<f:ajax execute><p:commandButton process>的功能完全相同,它们都指定在表单提交期间需要执行/处理哪些组件(在PrimeFaces的默认情况下为整个表单,在标准JSF的情况下为当前组件)。<f:ajax render><p:commandButton update>的功能也完全相同,它们都指定在表单提交期间需要更新哪些组件。这些属性只是用来指定需要执行/处理和更新的组件。 - BalusC

5
您可以直接使用标准组件与f:ajax一起使用,例如:
<h:form id="myForm">       
  <h:commandButton value="Push Me">
     <f:ajax execute="myForm" render="statusBlock" />
  </h:commandButton>
  <h:panelGroup id="statusBlock">
  </h:panelGroup> 
</h:form>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接