Настройка ответа после вызова h: ajax - PullRequest
0 голосов
/ 23 марта 2012

У меня есть что-то вроде:

<h:commandButton>
     <h:ajax event="click" listener="#{controller.onLog}" onchange="onLogProcess" />
     ....
</h:commandButton>

Я отправляю сообщение на сервер, делаю некоторые вещи в функции слушателя. Затем я хотел бы вернуть строку / сообщение (ответить) клиенту обратно и перехватить его с помощью javascript в «onLogProcess», чтобы показать пользователю строку настройки.

Я смотрю на это, но пока ничего не нашел ...

Есть ли способ сделать это с JSF?

Я использую JSF 2.1 / Mojarra 2.1.2

Заранее спасибо!

1 Ответ

1 голос
/ 23 марта 2012

Пусть <f:ajax> (не <h:ajax>!) Условно отображает <h:outputScript>.

<h:commandButton action="#{controller.onLog}">
    <f:ajax render="script" />
</h:commandButton>
<h:panelGroup id="script">
    <h:outputScript rendered="#{not empty controller.log}">
        onLogProcess('#{controller.log}');
    </h:outputScript>
</h:panelGroup>

Где #{controller.log} - ваша строка, которую вы хотите передать в функцию JS.Убедитесь, что он не содержит специальных символов JS, таких как ', разрывы строк и т. Д. Используйте для этого Apache Commons Lang StringEscapeUtils#escapeJavaScript().

...