gpt4 book ai didi

jsf-2 - f :ajax doesn't work when parameters are passed using f:param

转载 作者:行者123 更新时间:2023-12-02 22:33:21 28 4
gpt4 key购买 nike

我在点击链接时调用一个方法。以下代码可以正常工作

                        <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>

但是当我尝试将参数传递给 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>

这段代码有什么问题?

最佳答案

<f:param>必须是 parent 的 child UICommand组件,不属于 <f:ajax> .

<h:commandLink value="#{name.label}">
<f:param name="idx" value="#{idx}" />
<f:ajax listener="#{myBean.changeActiveName}" render="@all" />
</h:commandLink>

(请注意,我删除了 executeevent 属性,因为您的定义已经是默认值;此外,我想知道将整个 IterationStatus 实例作为请求参数发送有何用处……也许您只是想发送索引吗?改用 #{idx.index} 左右)

另见:

关于jsf-2 - f :ajax doesn't work when parameters are passed using f:param,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11832607/

28 4 0