2

JSFを使用してJAVAで記述されたエンタープライズアプリケーションがあります(RichFaces 3.3を使用)。現在、私のURLは次のようになっています。

http://localhost/WebApplication/faces/folder1/page.jsp

問題は、URLをマスクして次のようにする方法です。

http://localhost/folder1/page.jps

基本的に「Application/faces/」を非表示にしたい

ありがとう

4

5 に答える 5

1

PrettyFaces を使用すると、URL を書き換えることができます。より軽量なものを好む場合は、NavigationHandler を拡張し、handleNavigation をオーバーライドします。たとえば、context.getExternalContext().redirect() を呼び出します。

于 2009-01-30T21:52:15.423 に答える
1

/faces/ は のマッピングによるものであることに注意してくださいweb.xml。これは JSF の標準マッピングですが、拡張マッピング (つまり.faces、URL の末尾) を使用することもできます。

たとえば、ここにあるアプリケーションでは、これは web.xml ファイルにあります。

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

これは IceFaces を使用していますが、RichFaces の場合も同様です。おそらく次のようになります<url-pattern>/faces/*</url-pattern>。上記のように変更すると*.faces、最終 URL は次のようになります。

http://localhost/WebApplication/folder1/page.faces

これを、ルート Web アプリケーションとしてデプロイすることについて Peter Hilton が示した回答と組み合わせて使用​​すると、最終 URL は次のようになります。

http://localhost/folder1/page.faces

これは、ほぼ正確にあなたが望んでいたものです。

于 2009-01-29T15:10:48.030 に答える
1

アプリケーション内で URL を書き換えるには、UrlRewriteを使用できます。ただし、この場合、Web アプリケーションのコンテキスト パスを削除したいようです。この場合、次の 2 つのオプションがあります。

  1. アプリケーションをコンテキストパスにデプロイします/(アプリケーションサーバー固有の方法です)
  2. ポート 80 で Apache を実行し、mod_proxy を使用して、次のような構成を使用して、別のポートで実行されているアプリケーション サーバーに特定の URL をプロキシします。

アパッチ構成:

<Proxy http://localhost:8080/*>
    Order Allow,Deny
    Allow From All
</Proxy>

ProxyPreserveHost On
ProxyPass / http://localhost:8080/WebApplication/
ProxyPassReverse / http://localhost:8080/WebApplication/
于 2009-01-29T07:19:04.350 に答える
1

うん。この状況を正確に処理するために、PrettyFaces を設計しました。

PrettyFaces – JSF / JSF2 の SEO、動的パラメーター、ブックマーク、およびナビゲーション

于 2009-11-03T21:15:46.783 に答える
-2

たとえば、次のように、フォルダ名をfacesからjspに変更することもできます。

<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/jsp/*</url-pattern>
</servlet-mapping>
<session-config>
    <session-timeout>
        30
    </session-timeout>
</session-config>
<welcome-file-list>
   <welcome-file>jsp/index.jsp</welcome-file>
</welcome-file-list>

そして、URLは次のようになります。

http://localhost/WebApplication/jsp/folder1/page.jsp

アプリケーションをアプリケーションサーバーのコンテキストパス/にデプロイすると、次のようになります。

http://localhost/jsp/folder1/page.jsp

ラマーにJSFを使用していることを確認するのは難しいでしょう;-)しかし、ハッカーはブラウザを次のようなURLにポイントすることで調査できます。http://localhost/folder1/page.jsp

于 2012-10-21T07:56:10.143 に答える