Primefaces AJAX обратный вызов с параметром для JavaScript
Я пытаюсь отправить свойство bean-компонента Primefaces непосредственно в javascript, чтобы открыть новую страницу и записать содержимое свойства bean на новую страницу.
Я использую Primefaces 4.0.
У меня есть кнопка управления, как это:
<p:commandButton id="buttonId" update="buttonId, otherComponentId"
value="press me" process="@this" actionListener="#{homeController.myMethod}"
oncomplete="handleComplete(xhr, status, args)">
</p:commandButton>
В handleComplete javascript функция args не определена, но не xhr и статус. Определение функции JavaScript:
function handleComplete(xhr, status, args){
var w = window.open();
w.document.open();
alert(xhr.responseText.substring(100));
alert(status);
alert(args);
var d = '<head></head><body>'+ args.firstParam +'<body>';
w.document.write(d);
w.document.close();
}
первое предупреждение, которое дает мне страницу, вторая ошибка синтаксического анализа и ошибка: Uncaught TypeError: Невозможно прочитать свойство 'firstParam' из неопределенного
Я хочу передать в аргументы строку, как это:
public String MyMethod() {
RequestContext context = RequestContext.getCurrentInstance();
context.addCallbackParam("firstParam", "my string");
return "";
}
и доступ к нему в JavaScript сargs.firstParam
.
метод вызывается, (у меня есть несколько экранов печати, которые работают.)
Я должен попробовать этот способ, а не устанавливать текст в
<h:outputText id="myText" escape="false" rendered="true"
value="#{homeController.property}" />
а затем получить innerHTML этого элемента, потому что то, что я получу с innerHTML, не будет таким же, как строковая переменная в bean-компоненте. Этот метод работает, но не так, как хотелось бы. Мне интересно, почему объект args не определен или как еще можно получить свойство bean-компонента, управляемое из javascript. Спасибо.