2012-03-20 15 views
0

私はajax呼び出しのエラーページにリダイレクトするために、xhtmlファイルに次のコードを記述しました。共通ページに記述しました。JSF 2.0 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" 

を含むが、その同じエラーを与えることによって、それを試してみました。私は間違いに

答えて

2

をしましたが、「JSFは未定義」としてブラウザにエラーを取得しています。どこ

いずれかを教えてくださいことができます

あなたの側からの入力ミスではありませんか?​​はすべて小文字で、Jsfではありません。いずれの場合においても

あなたは​​オブジェクトを参照しようとするたびに、それが今までJavaScriptのコンテキスト内で宣言されている前に、このエラーが発生します。たとえば、とき(あなたがソースの表示ウェブブラウザでで見ることができるように)生成されたHTML出力は次のようになります。

<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" /> 

、あなたの代わりにこのFullAjaxExceptionHandlerの使用を検討した後、同様のAjaxリクエストにweb.xmlに標準<error-page>メカニズムを使用したい場合。