簡體   English   中英

JSF 2.0 Ajax異常處理

[英]JSF 2.0 Ajax Exception Handling

我在我們的xhtml文件中編寫了以下代碼,用於重定向到ajax調用的錯誤頁面,我已經將它寫在了公共頁面中。

var onError = function onError() {
window.location = 'http://' + jQuery(location).attr('host')+'/saec/app/error';//saec/app/error };jsf.ajax.addOnError(onError);

它工作正常,但在瀏覽器中得到的錯誤為“Jsf undefined”。

我試過通過包括

h:outputScript name="jsf.js" library="javax.faces" target="head" 

但它也給出了同樣的錯誤。

可以任何人請告訴我我在哪里犯了錯誤

但在瀏覽器中我得到錯誤為“Jsf undefined”。

你確定這不是你身邊的錯字嗎? 它是全部小寫的jsf ,而不是Jsf

在任何情況下,只要您嘗試在JavaScript上下文中聲明jsf對象之前引用它,就會收到此錯誤。 例如,生成的HTML輸出(如webbrowser中的View Source所示 )如下所示:

<script>jsf.ajax.addOnError(functionName);</script>
<script src="/contextname/javax.faces.resource/jsf.js.xhtml?ln=javax.faces"></script>

您應確保在聲明引用它:

<script src="/contextname/javax.faces.resource/jsf.js.xhtml?ln=javax.faces"></script>
<script>jsf.ajax.addOnError(functionName);</script>

此外,您需要考慮這樣一個事實:只要視圖中的其他地方有<f:ajax>標記,JSF就會自動包含它。 如果是這種情況,您可能需要額外檢查:

if (typeof jsf !== 'undefined') {
    jsf.ajax.addOnError(functionName);
}

否則,您需要添加以下行以確保JSF將在每個請求上自動包含ajax腳本,即使該視圖不包含任何<f:ajax>

<h:outputScript library="javax.faces" name="jsf.js" target="head" />

具體問題無關 ,如果您還希望在ajax請求中使用web.xml的標准<error-page>機制,那么請考慮使用此FullAjaxExceptionHandler

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM