1

tomcat7 を使用して Eclipse で JSF 2.0 アプリケーションを作成しようとしています。プロジェクトは正常に実行されていますが、jsf html およびコア コンポーネントがブラウザーでレンダリングされません。web.xml で設定した Faces Servlet だと思います。

以下は web.xml ファイルです -

<welcome-file-list>
<welcome-file>faces/index.xhtml</welcome-file>    
</welcome-file-list>

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

<context-param>
    <description>State saving method: 'client' or 'server' (=default)</description>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
</context-param>
<context-param>
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
    <param-value>resources.application</param-value>
 </context-param>
 <listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
 </listener>

WEB-INF の外に index.xhtml ページがあります。ブラウザには表示されますが、jsf コンポーネントはブラウザに表示されません。誰でも何がうまくいかないのか教えてください。

以下の jar を WEB-INF/lib に含めました - 1. commons-annotations.jar 2. commons-beansutil.jar 3. commons-collection.jar 4. commons-digester.jar 5. commons-logging.jar 6. jsf -api.jar (mojra 2.0 から) 7. jsf-impl.jar (mojra 2.0 から) 8. jstl.jar 9. standard.jar

ありがとう

4

3 に答える 3

2

これらを試してみてください..これらは、私自身の質問のために一度指定されました..

  1. JSF jar は必要ありませんし、含めるべきではありません。これらはすでに Java EE の一部です。
  2. 第二に、別の Facelets jar を JSF 2.x と組み合わせて使用​​する必要はなく、絶対に使用すべきではありません。Facelets はすでに JSF 2.x の一部です。
  3. また、JSTL jar も含めないでください。それも Java EE によって提供されます。Apache commons による commons jar がある場合、それらは問題ありませんが、JSF には必要ありません。アプリケーション コードで直接使用する場合にのみ含めます。
  4. 最新の JSF (mojara 2.x) を入手してみてください。

また、次のように web.xml を変更して試すこともできます。

 <welcome-file-list>
 <welcome-file>index.xhtml</welcome-file>    
 </welcome-file-list> 


 <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>*.xhtml</url-pattern>    
 </servlet-mapping>    

私が試したとき、私はjsf jarを個別に追加することを削除しました。そして、すべてのjsfタグを表示して機能しました。また、xhtml ページに必要なすべての taglibs があることを確認してください。

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

これが機能するかどうかを確認してください。

于 2013-02-11T09:03:47.510 に答える
0

元の質問に表示されているサーブレット マッピングを次のように変更してください。

<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>    
</servlet-mapping>

つまり、(Tomcat によって既に満足に提供されている) コンテンツを JSF2 経由でレンダリングします。

于 2014-03-01T10:28:49.690 に答える