Primefaces wywołanie zwrotne ajax z parametrem do javascript

Usiłuję wysłać właściwość bean Primefaces bezpośrednio do javascript, aby otworzyć nową stronę i zapisać zawartość właściwości bean na nowej stronie.

Używam Primefaces 4.0.

Mam taki przycisk polecenia:

 <p:commandButton id="buttonId" update="buttonId, otherComponentId"
    value="press me" process="@this" actionListener="#{homeController.myMethod}"
    oncomplete="handleComplete(xhr, status, args)">
 </p:commandButton>

W handleComplete argumenty funkcji javascript są niezdefiniowane, ale nie xhr i status. definicja funkcji 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();
}

pierwszy alert daje mi stronę, drugi błąd analizy parsowania, a błąd: Nieprzechwycony TypeError: Nie można odczytać właściwości 'firstParam' z undefined

Chcę przekazać argumenty w następujący sposób:

public String MyMethod() {
    RequestContext context = RequestContext.getCurrentInstance();  
    context.addCallbackParam("firstParam", "my string");
      return "";
}

i uzyskaj do niego dostęp za pomocą javascriptargs.firstParam .

metoda jest nazywana (mam kilka ekranów do drukowania, które działają.)

Muszę spróbować tego, a nie ustawiać tekstu na

<h:outputText id="myText" escape="false" rendered="true"
            value="#{homeController.property}" />

a następnie pobierz innerHTML tego elementu, ponieważ to, co otrzymam z innerHTML, nie będzie takie samo jak zmienna łańcuchowa w komponencie bean. Ta metoda działa, ale nie tak, jak bym chciał. Zastanawiam się, dlaczego obiekt args jest niezdefiniowany lub jak inaczej można uzyskać właściwość komponentu bean zarządzalną z javascript. Dziękuję Ci.

questionAnswers(1)

yourAnswerToTheQuestion