2010-12-08 8 views
0

私は、依存するjarアプリケーションを既存のものに追加するタスクに直面しています。 、私はフィルタのアイデアを得ると考えていてもbeacuse、1ロケールの利点の多くを使用していないというように、私の新しいものは...tomcatのフィルタ

So like I have now : localhost:8080/old-app 
I want to have also : localhost:8080/[en|fr|...]/new-module 

誰かが私に方向を指してもらえなければならない既存のフィルタマッピング、私はそれを解決するために管理することはできません。

編集:私は古いものを保存し、新しいものにアクセスしたいと思います。あなたはコンテキストルートなどとしてアプリケーション名をたくない場合は

は、

よろしく、 P.

+0

/old-appから/ new-appに自動リダイレクトしますか?または、古いアプリを新しいURLパターンで利用できるようにしたいですか? – JoseK

+0

この質問が私には意味をなさないのではないかと心配しています。 –

答えて

1

をありがとうlocalhost:8080/appnameと入力してください。直接入力するには、tomcat/webapps/ROOTフォルダに入力する必要があります。より洗練されたURLマッピングの作業を取得するにはhttp://ocpsoft.com/prettyfaces/

+0

PrettyFacesはJSF Webアプリケーション専用です。 OPがJSFを使用しているところはどこですか? – BalusC

3

展開new-moduleROOT.war(または//META-INF/context.xmlpathを設定)などを見ています。 Tuckey's URLRewriteFilterを使用して、特定のURLを書き換えて、request.getParameter()で利用できるように、言語部分をリクエストパラメータに変換します。 Apache HTTPDのmod_rewriteとよく似ています。

URLRewriteFilterの代わりに、doFilter()メソッドで次のようなカスタムフィルタを使用します。 /*url-pattern

String uri = request.getRequestURI(); 
if (uri.matches("^/\\w{2}(/.*)?$")) { 
    request.setAttribute("language", uri.substring(1, 3)); 
    request.getRequestDispatcher(uri.substring(3)).forward(request, response); 
} else { 
    chain.doFilter(request, response); 
} 

地図を。この言語は、転送されたリソースのrequest.getAttribute("language")によって利用可能になります。

関連する問題