1

新しいアプリケーションを既存のJSPアプリケーションと統合し、既存の機能の一部を再利用しようとしています。私はfaces-navigation.xmlに次のようなナビゲーションルールを持っています

<from-view-id>/WEB-INF/jsp/admin/login.xhtml</from-view-id>
<navigation-case>
    <from-outcome>success</from-outcome>
    <to-view-id>/WEB-INF/jsp/admin/welcome.xhtml</to-view-id>
</navigation-case>
<navigation-case>
    <from-outcome>admin</from-outcome>
    <to-view-id>/WEB-INF/jsp/admin/dashaboard.xhtml</to-view-id>
</navigation-case>
</navigation-rule>  

私のjspでは、この定義を次のように呼び出そうとしています。

<a href="/WEB-INF/jsp/admin/login.xhtml">Admin login </a>

「管理者ログイン」をクリックすると、ページが見つからないという例外が発生します。

このビューを呼び出す別の方法はありますか?

4

1 に答える 1

1

のファイルは公開されていません(つまり、エンドユーザーはブラウザのアドレスバーに裸のURLを入力して/WEB-INFファイルを直接開くことはできません)。これらは、フォルダ内のファイルに対してを実行するサーブレット/WEB-INFからのみアクセスできます。古いwebappコードのセットアップは、自家製または別のMVCフレームワークからのそのようなサーブレットを使用していたようです。RequestDispatcher#forward()/WEB-INF

それらのページをフォルダのに移動する必要があります。ちなみに、これらのファイルはJSPファイルではない/WEB-INFため、誤解を招く部分もパスから削除します。/jsp拡張.xhtml機能を指定すると、代わりに実際に後継のFaceletsを使用しています。

ちなみに、新しい「暗黙のナビゲーション」機能のおかげで、JSF2.0以降のナビゲーションルールは廃止されました。おそらく、JSFを学びながら、JSF1.xを対象とした本/チュートリアルに集中しすぎていたのではないでしょうか。

于 2012-08-07T21:09:59.317 に答える