1

以下はindex.html、JSFを含む私のファイルです:http://pastie.org/3755252

Run as > Run on ServerEclipse Indigoで(Tomcat 7.0.12)を選択すると、次のようなページが表示されます。

You have login attempts left.

Chromeでも同じことが起こります。ページのソースを見た後、Eclipse(前のパスティファイル)で書いたのと同じように表示されましたが、htmlに翻訳する必要があるようです。

これは私のMember.javaファイルです:http://pastie.org/3755277そして ここに私のweb.xmlがあります:http: //pastie.org/3755284

JSF 2.0とJSF1。*構文を混在させていることに気付く前は、これは機能していました。次に、*。jspを*.htmlに変更しましたが、機能しません。

4

1 に答える 1

3

Pastieがダウンしているようです(ファイルを読み取ることができません)...しかし、Tomcatは完全なJavaEEコンテナーではありません。Mojarraランタイムが必要です。ビルドに含まれていますか?

編集:NMそれは戻ってきました。web.xmlにJSFサーブレットが表示されているので、この回答は無視してかまいません。

EDIT2:これをweb.xmlに追加します:

 <context-param>
  <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
  <param-value>.xhtml</param-value>
 </context-param>

次に、.htmlファイルの名前を.xhtmlに変更します。サーブレットは、JSFを使用してファイルをレンダリングすることになっていることを知らなかったように感じます。

EDIT3:それで、何が起こっているのかというと、サーバーがFacesを使用してページをレンダリングする必要があるかどうかについてサーバーを混乱させていると思います。URLバーのURLは「localhost/app / faces / index.html」で、ファイルと完全に一致します。では、sendfileを実行する必要がありますか、それともサーブレットを介して実行する必要がありますか?.xhtmlへの名前変更が機能した可能性が高い理由は、.htmlリクエストを.xhtmlファイルにマップする必要があることを内部的に認識していたためです。

したがって、ファイルの名前を.html5に変更してから、web.xmlでこれを設定してみてください。

 <context-param>
  <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
  <param-value>.html5</param-value>
 </context-param>

どの拡張機能でも機能すると思います...次の組み合わせも可能です。

  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>
  <context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.html</param-value>
  </context-param>

次に、あなたのホームページはhttp://localhost/app/index.jsf

于 2012-04-09T14:24:15.787 に答える