我在JSF页面中有以下内容:
<h:commandLink action="#{manager.removeEntity(row.id)}" value="Remove">
<f:ajax event="action" render=":form:table" />
</h:commandLink>
Run Code Online (Sandbox Code Playgroud)
渲染工作完美,但在执行操作之前渲染组件.(我通过记录知道这一点)
在服务器上执行动作功能后,有什么方法可以渲染组件吗?
任何帮助将不胜感激
更新1
我删除了action属性并为标记添加了一个监听器,但不幸的是它似乎没有帮助,在渲染组件树之后仍然会调用该方法.
我在点击链接时调用了一种方法。以下代码可以正常工作
<ui:repeat value="#{myBean.names}" var="name"
varStatus="idx">
<li>
<h:commandLink value="#{name.label}">
<f:ajax execute="@this" event="click" render="@all" listener="#{myBean.changeActiveName}" >
</f:ajax>
</h:commandLink>
</li>
</ui:repeat>
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试将参数传递给Ajax调用时,它将开始刷新整个页面
<ui:repeat value="#{myBean.names}" var="name"
varStatus="idx">
<li>
<h:commandLink value="#{name.label}">
<f:ajax execute="@this" event="click" render="@all" listener="#{myBean.changeActiveName}" >
<f:param name="idx" value="#{idx}" />
</f:ajax>
</h:commandLink>
</li>
</ui:repeat>
Run Code Online (Sandbox Code Playgroud)
此代码有什么问题?