小编典典

将额外的参数传递给f:ajax onevent函数

ajax

在我的 JSF 2.0 (在 JBoss AS 7上
)项目中,我希望在我的Ajax提交的表单上显示一个在开始和完成阶段触发的小图标状态,以使最终用户知道仍有事情发生。

primefacesp:ajaxStatus是没有用在这里,因为我想有在我的网页不同的地方很多不同的图标。

我在此问题中找到了一些解决方案:“如何在同一输入中显示不同的ajax状态?”,但是我仍然有一个问题:为了使我的javascript函数可重用,我需要为调用提供一个额外的参数。

我做了这样的事情:

<h:commandLink value="do something boy!">
    <f:ajax render="@form" execute="@form" listener="#{myBean.doStuff}"
        onevent="showProgress" />
    <f:param name="extraParam" value="extraValue" />
</h:commandLink>

并且我可以看到通过请求将参数“ extraParam”发送到服务器,但是在我的javascript
showProgress方法中,我无法通过唯一的给定参数恢复该参数。

所以我的问题是: 我可以f:ajax onevent通过f:param(或可能是f:attribute,或其他任何方式)向我的javascript方法提供附加参数吗?


阅读 383

收藏
2020-07-26

共1个答案

小编典典

将其包装在一个匿名函数中,在其中您将其作为额外的参数传递。

<h:commandLink value="do something boy!">
    <f:ajax render="@form" execute="@form" listener="#{myBean.doStuff}"
        onevent="function(data) { showProgress(data, 'extraValue') }" />
</h:commandLink>

function showProgress(data, extraParam) {
    // Use "data" argument the usual way.
    // The "extraParam" argument will contain "extraValue" in above example.
}
2020-07-26