2017-02-22 38 views
1

JQueryのインポートの順序に問題があります。 は、私は頭のセクションでは:PrimeFacesとJQuery:リソースの順序

<h:head> 
<f:facet name="first"> 
    <h:outputScript library="primefaces" name="jquery/jquery.js" target="head" /> 
</f:facet> 
<f:facet name="middle"> 
    <h:outputScript library="primefaces" name="jquery/jquery-plugins.js" target="head" /> 
</f:facet> 
... 

私のページがロードされる最初の時間は、すべてのものが特にjqueryの/ jqueryの - プラグインのため、正しいようだ:ページで

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"><head id="j_idt2"> 
<link type="text/css" rel="stylesheet" href="/installateurportal/javax.faces.resource/theme.css.jsf?ln=primefaces-aristo" /> 
<link type="text/css" rel="stylesheet" href="/installateurportal/javax.faces.resource/components.css.jsf?ln=primefaces&amp;v=6.0" /> 
<link type="text/css" rel="stylesheet" href="/installateurportal/javax.faces.resource/css/default/core.css.jsf?ln=bsf" /> 
<link type="text/css" rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" /> 
<link type="text/css" rel="stylesheet" href="/installateurportal/javax.faces.resource/css/bsf.css.jsf?ln=bsf" /> 
<!--[if lt IE 9]><script src="/installateurportal/javax.faces.resource/js/html5shiv.js.jsf?ln=bsf"></script><script src="/installateurportal/javax.faces.resource/js/respond.js.jsf?ln=bsf"></script><![endif]--> 
<script type="text/javascript" src="/installateurportal/javax.faces.resource/jquery/jquery.js.jsf?ln=primefaces&amp;v=6.0"></script> 
<script type="text/javascript" src="/installateurportal/javax.faces.resource/jquery/jquery-plugins.js.jsf?ln=primefaces&amp;v=6.0"></script> 
<script type="text/javascript" src="/installateurportal/javax.faces.resource/core.js.jsf?ln=primefaces&amp;v=6.0"></script> 
... 

のようなボタンがあります
<h:commandLink styleClass="btn btn-mini btn-default" 
    actionListener="#{testController['filterTable']}"> 
    <i class="fa fa-refresh"/> 
</h:commandLink>      

これらのいずれかを押した後、ページには、JSコンソールのエラーが再度表示されます。

Uncaught ReferenceError: jQuery is not defined 
    at tbmDisposition-aendernPF.jsf:3 
VM219 jquery-plugins.js.jsf?ln=primefaces&v=6.0:5 Uncaught ReferenceError: jQuery is not defined 
    at VM219 jquery-plugins.js.jsf?ln=primefaces&v=6.0:5 
    at VM219 jquery-plugins.js.jsf?ln=primefaces&v=6.0:5 

そして、あなたは生成されたHTMLを見ると:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"><head id="j_idt2"> 
<link type="text/css" rel="stylesheet" href="/installateurportal/javax.faces.resource/theme.css.jsf?ln=primefaces-aristo" /> 
<link type="text/css" rel="stylesheet" href="/installateurportal/javax.faces.resource/css/default/core.css.jsf?ln=bsf" /> 
<link type="text/css" rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" /> 
<link type="text/css" rel="stylesheet" href="/installateurportal/javax.faces.resource/css/bsf.css.jsf?ln=bsf" /> 
<!--[if lt IE 9]><script src="/installateurportal/javax.faces.resource/js/html5shiv.js.jsf?ln=bsf"></script><script src="/installateurportal/javax.faces.resource/js/respond.js.jsf?ln=bsf"></script><![endif]--> 
<link type="text/css" rel="stylesheet" href="/installateurportal/javax.faces.resource/components.css.jsf?ln=primefaces&amp;v=6.0" /> 
<script type="text/javascript" src="/installateurportal/javax.faces.resource/jquery/jquery-plugins.js.jsf?ln=primefaces&amp;v=6.0"></script> 
<script type="text/javascript" src="/installateurportal/javax.faces.resource/jquery/jquery.js.jsf?ln=primefaces&amp;v=6.0"></script> 
<script type="text/javascript" src="/installateurportal/javax.faces.resource/core.js.jsf?ln=primefaces&amp;v=6.0"></script> 
... 

あなたはjqueryの、プラグインが説明エラーが発生し上記のjqueryであることがわかります。

もちろん、頭の部分ではさまざまな選択肢を試してみましたが、何の助けもありがとうございました。

バージョン情報

PrimeFacs:6.0

JSF:1.2_15-jbossorg-2

サーバー:jboss-as-7.1.2.Final

挨拶 甲斐

更新: 見つけたHeadRendererのデバッグHeadRendererがJQueryをまったく責任を負いかねているように見えます。 これは、ウィジェットのResourceDependenciesと何かが関係している必要があります。 どのレンダラーがResourceDependenciesを担当するのか知っている人はいますか?

更新2: 私はレイアウトのためにBootsFacesを使用しています。 JSファイルは

if (name.contains("jquery-ui")) name = "2.js"; // make it the second JS file 
else if (name.contains("jquery")) name = "1.js"; // make it the first JS file 

のようにしかし、私の場合は、名前が変更されますBootsFacesのResourceFileComparatorで :今私はBootsFacesが...同様

アップデート3を、独自のjQueryとリソースの最適化を持っていることを学びましたjquery-uiの名前は「jquery/jquery-plugins.js」 =>「jquery/jquery.js」と「jquery/jquery-plugins.js」の両方が「1.js」に変更されます

+0

JSF 1.2を実行していますか?個人的には私がファセットに必要なファイルを追加することはありません。なぜなら、私はいつもどこにいるかを100%確信していないからです。の最後にそれらを置いて、primefacesが自動注入を行うのを待っています。あるいは、PrimeFacesのテーマなどをオフにして、自分ですべて行うこともできます。 – VeenarM

+0

依存関係は です。1.2_15-jbossorg-2 しかし、それはJSF 2.1です。 どうすればいいですか? –

答えて

関連する問題