2012-04-05 11 views
0

JSF 2.0 Webプロジェクトにプライムフェイスを組み込もうとしています。JSF 2.0とFaceletsを持つプライム

facelet 1.xから2.0に最近更新されました。私のライブラリフォルダにprimefaces jarが追加されました。テンプレートが構造化されている方法で、プライムフェイスと矛盾している場合を除いて、すべてが問題ありません。

のtemplate.xhtmlは次のようになります。

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0  Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core"> 

<h:head> 
    <title><ui:insert name="title">MILO</ui:insert></title> 

    //Css 
    //js   

</h:head> 

<h:body class="milo"> 
    <h:form styleClass="miloForm" enctype="multipart/form-data"> 
     <div id="container"> 
       <ui:insert name="header"> 
        <ui:include src="/WEB-INF/templates/header.xhtml"/> 
       </ui:insert> 

       <ui:insert name="content"> 
        <!-- include your content file or uncomment the include below and create content.xhtml in this directory --> 
       </ui:insert> 

       <ui:insert name="footer"> 
       <ui:include src="/WEB-INF/templates/footer.xhtml"/> 
       </ui:insert>   </div> 
    </h:form> 
</h:body> 

そして、私のいるindex.xhtmlは、このようなを見て:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" 
xmlns:ui="http://java.sun.com/jsf/facelets" 
xmlns:h="http://java.sun.com/jsf/html" 
xmlns:f="http://java.sun.com/jsf/core" 
xmlns:p="http://primefaces.org/ui"> 

<ui:composition template="/WEB-INF/templates/base.xhtml"> 

<ui:define name="content"> 

     <p:editor/>   
</ui:define> 

これが完了すると、p:エディタは表示されません。なぜどんなアイデア?コンソールは警告/エラーを表示しません。あなたのtemplate.xhtml

EDIT >>>見つかりJSエラー

enter image description here

答えて

4

は、あなたが<h:body>によって<head><h:head><body>で置き換える必要があります。別のHTMLを追加しないでください。HTMLが無効になるだけです。

特に、<h:head>は、PrimeFacesのようなコンポーネントライブラリがリソース依存性注入によって必要なCSS/JSファイルを自動インクルードできるようにするため必須です。 <h:body>は、<h:outputScript>の要素がtarget="body"の場合にのみ生成されるため、生成されたHTML <body>要素の一番下に自動的に再配置されます。


更新あなたの具体的な問題は、手動でロードjQueryライブラリにおける紛争と自動含まPrimeFacesである1によって引き起こされます。 PrimeFacesは、jQueryとjQuery UIをカバーしています。 PrimeFacesを使用する場合は、手動でロードされたjQueryを削除し、PrimeFacesにバンドルされているものを代わりに使用することをお勧めします。私は私の調査結果を反映させるために私の質問を更新し

<h:outputScript library="primefaces" name="jquery/jquery.js" /> 
+0

:あなたにもPrimeFacesコンポーネントを使用していないページをカバーするには、明示的<h:head>に次の行を追加することによって、すべてのページのためのPrimeFaces-同梱のjQueryをロードすることができます。 < head>を< h:head>と< body>から< h: body>に変更しても、エラーはなくなりますが、p:editorは表示されなくなります。なぜあなたはそれがだと思いますか? – Myy

+0

あなたのコードにはあまりにも多くのノイズが含まれています(あなたはSSCCEを作成して提供する方法を学ぶべきです)が、マスターテンプレートはすでに ''を持っていますが、テンプレートクライアントに '' 。フォームのネストはHTMLでは無効です。 – BalusC

+0

すみません。私はあなたのポイントを理解しています。 – Myy

関連する問題