我努力發送一個Primefaces bean屬性到javascript直接爲了打開一個新頁面,並將bean屬性的內容寫入新頁面。Primefaces ajax回調參數爲javascript
我正在使用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函數參數是不確定的,但不是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();
}
第一警惕它給我的頁面,第二個語法錯誤, 和錯誤是:遺漏的類型錯誤:無法讀取的不確定
財產「firstParam」我要通過在ARGS一個字符串是這樣的:
public String MyMethod() {
RequestContext context = RequestContext.getCurrentInstance();
context.addCallbackParam("firstParam", "my string");
return "";
}
與args.firstParam
訪問它在JavaScript。
方法被調用,(我有一些printscreens這項工作。)
我必須嘗試這種方式,而不是文本設置成
<h:outputText id="myText" escape="false" rendered="true"
value="#{homeController.property}" />
,然後得到這個元素的innerHTML因爲我將用innerHTML獲得的內容與bean中的字符串變量不同。這種方法有效,但不是我想要的。我想知道爲什麼args對象是未定義的,或者我怎麼才能從javascript處理bean屬性。謝謝。
感謝您的幫助和快速回復。這是javascript函數中的錯誤Uncaught TypeError:無法讀取未定義的屬性'firstParam'。我將立即編輯帖子。 –
我已經更新了我的答案,最後還有一條建議......讓我知道你有什麼... @MihaiSerban –
你是對的,謝謝。如果我添加'context.addCallbackParam(「firstParam」,「hello world」);'它的工作參數,但如果我添加我的字符串它爲空,它會給出錯誤。我的字符串它實際上是一個靜態頁面..可能有一些大小限制?因爲我的字符串被打印出來,它不是空的,但是它非常大。 –