顔サーブレットマッピングにJSF2 <歓迎-file>を設定する方法?
質問
私はFaceletsのを使用して簡単なJSF2アプリを持っています。次のように私のweb.xmlが設定されている: -
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
私は/pages/login.xhtmlあるウェルカムページをデフォルトにアプリを設定したいです。私は、ブラウザのコンテキストルートに行くときにこれを拾うために歓迎ファイルの設定を取得するように見えることはできません。
次のように私のweb.xml歓迎の設定は次のとおりです。 -
<welcome-file-list>
<welcome-file>/pages/login.jsf</welcome-file>
</welcome-file-list>
どのように私は後藤ログインページに歓迎-ページを強制し、それが直面しているサーブレット?
を通過することを確認します私は、次のページが表示されますを使用していますが、それは顔のサーブレットを通じて行っておりませんので、コンポーネントがレンダリングされません直面している場合: -
<welcome-file-list>
<welcome-file>pages/login.xhtml</welcome-file>
</welcome-file-list>
すべてのヘルプは大歓迎!
解決
あなたはlogin.xhtmlファイルに隣接した空のlogin.jsfファイルを、作成する必要があります。何らかの理由で、このハックは、あなたの歓迎のファイルが存在する考えにサーブレットコンテナをだますために必要とされます。
注:務め応答はまだあなたのlogin.xhtmlファイルではなく、作成した空のlogin.jsfファイルを使用して、JSFの応答になります。
他のヒント
その他の情報ます。
このはGlassfishの3.1やTomcatの7の下で実行すると以前のバージョン3にサーブレットコンテナのための唯一の下位互換性が必要で、例えば、もはや、このような空のファイルを持っている必要はありません。私はGlassfishので走ったテストを持っていた過去にはTomcatの6とTomcat 7を使用して検証するためのテストを実行し、私たちは現在の時点でのTomcat 6で私たちのソフトウェアを実行するため、Tomcatの6問題が遊んでいたと仮定し、それが3.0サーブレットコンテナではありません。私は、リダイレクトでJSPページを使用していたが、Faceletsのに完全に上を移動した後、私は、JSPページ上で左1つを有する嫌い。我々は3.0サーブレットコンテナ内で実行されるまで、これは短期的に最適なソリューションです。それが動作する本当の理由は、すべてのweb.xmlエントリで行われているが、ファイルの存在のチェックであるということです。それは顔のページへの要求をキャッチして、実際の作業はJSFにオフに扱われているので、それが何のためにその空のページを打つことはありません。