Вызов из JavaScript в код на стороне сервера в JSF - PullRequest
0 голосов
/ 12 мая 2009

Я ищу простой способ вызова метода бина, который не будет принимать параметров и вернет строку в JSF. То, что мне действительно не нужно, - это то, что метод возвращает результат действия, а затем использует весь жизненный цикл JSF, чтобы привести меня к другому представлению. Мне нужно сделать это из JavaScript, чтобы я мог собрать некоторые части приложения на стороне клиента, и просмотр части A4J в RichFaces ничего не дал мне.

Итак, вот снова сценарий в пошаговой форме:

  1. из JS выдает GET на какой-то адрес
  2. на серверном процессе, который получает и возвращает JSON или HTML (в основном строку)
  3. как только запрос отослан обратно клиенту, я хочу иметь возможность обрабатывать его дальше с помощью JS.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 12 мая 2009

Используйте a4j: jsFunction и атрибут данных.

Так примерно вы хотите что-то вроде:

<button onclick="callBackend();">Go</button>

<a4j:jsFunction name="callBackend" action="#{myBean.someMethod}" data="#{myBean.someString}" oncomplete="handleResponse(data);"/>

<script>
function handleResponse(response) {
   alert(response);
}
</script>
0 голосов
/ 13 мая 2009

Дамо: вы можете объяснить, почему он может работать только в первый раз, когда вызывается метод callBackend? Я испытываю странное поведение, когда первый вызов завершается успешно, а последующие вызовы просто блокируются. Я вижу, как выполняется код на стороне сервера, но какой-то странный результат отправляется обратно в браузер (что-то вроде _viewstate и тому подобное).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...