Передача дополнительного параметра в функцию f: ajax onevent
В моем проекте JSF 2.0 (в JBoss AS 7) я хотел бы, чтобы в моих представленных формах ajax отображался статус значка, запускаемый на начальных и полных этапах, чтобы конечный пользователь знал, что что-то еще происходит.
primefaces p: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
я не могу восстановить его через единственный заданный параметр.
Итак, мои вопросы: Могу ли я предоставить javascript моему методу f:ajax onevent
дополнительный параметр через f:param
(или, возможно, f:attribute
или что-то еще)?
Ответы
Ответ 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.
}