2012-04-17 10 views
2

Eclipse 3.6とGlassfish 3.1を使用して私のPrimefaces 3.2開発をアプリケーションサーバーとして立ち上げようとしています。Primefacesタグが機能していません

この非常に簡単なコードを使用してEclipseからアプリケーションを公開しようとしています。

<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/template.xhtml"> 
    <ui:define name="content"> 
     <p:panel header="Login Form"> 
      <h:form> 
       <p:button value="With Icon!" icon="bookmark" /> 
       <br /> 
       <p:spinner /> 
      </h:form> 
     </p:panel> 
    </ui:define> 
</ui:composition> 
</html> 

プライムフェイスはレンダリングされません。ボタンは表示されていますが、アイコンは表示されず、スピナーは入力テキストだけを表示しています。

私はprimefaces jarファイルをWEB-INF/libフォルダに置いています。

グラスフィッシュのログでこのエラーが表示されますが、

[#|2012-04-17T11:37:56.864+0800|INFO|glassfish3.1.2|javax.enterprise.resource.webcontainer.jsf.renderkit|_ThreadID=23;_ThreadName=Thread-2;|WARNING: FacesMessage(s) have been enqueued, but may not have been displayed. 
sourceId=null[severity=(ERROR 2), summary=(One or more resources have the target of 'head', but no 'head' component has been defined within the view.), detail=(One or more resources have the target of 'head', but no 'head' component has been defined within the view.)]|#] 

アップデート:ここ

申し訳ありませんが、私のweb.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    version="3.0"> 
    <servlet> 
     <servlet-name>Faces Servlet</servlet-name> 
     <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>Faces Servlet</servlet-name> 
     <url-pattern>/faces/*</url-pattern> 
    </servlet-mapping> 
    <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 

    <servlet-mapping> 
     <servlet-name>Faces Servlet</servlet-name> 
     <url-pattern>*.jsf</url-pattern> 
    </servlet-mapping> 
</web-app> 

マイテンプレートであるあなたがのtemplate.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"> 
<head> 
    <title><ui:insert name="title">My Test Application</ui:insert></title> 
</head> 
<body> 
<div id="header"> 
    <ui:insert name="header"> 
     <h1>Header</h1> 
    </ui:insert> 
</div> 
<div id="content"> 
    <ui:insert name="content"> 

    </ui:insert> 
</div> 

<div id="footer"> 
    <ui:insert name="footer"> 
     <br/><br/>Footer! 
    </ui:insert> 
</div> 
</body> 
</html> 
+0

エラーメッセージに、あなたのビューに「」タグがないと表示されます。それを追加してみてください。いくつかのリソースを ''に設定しましたか? – Lion

+0

'web.xml'には何がありますか? [この質問](http://stackoverflow.com/q/3599015/139010)のように、 'FacesServlet'を設定する必要があります。 –

+1

問題はライオンが言いました。あなたのテンプレートに ''を付けてください。これにより、プライム面のJavaScriptがレンダリングされます。 –

答えて

4

例えば、

<f:view> 
    <h:head> 
    <title><ui:insert name="title">insert title</ui:insert></title> 
    <meta content="text/html; charset=UTF-8" http-equiv="Content-type" /> 
    <link type = "text/css" rel="stylesheet" href="/your/theme/skin.css" /> 
    </h:head> 

希望すると、これが役立ちます。

+0

に置き換えてください。それはこのチュートリアルで言及されていませんでした。 Eclipseが自動的にこのファイルを生成しました。とにかく、誰にも感謝の気持ちでいっぱいです。 –

+0

@ MarkEstrada、私はそれを自動生成するためにEclipseを使用していません。その場合、バグです。:) – UVM

関連する問題