2011-07-04 2 views
2

Tomcat 6.0およびJSF 2.0のrichface 4.0.0 Finalを持つWebアプリケーションがあります。2.0のJSFナビゲーション・ハンドラによるURLアクセスを非表示にする方法

すべてのページは、内線番号xhtmlです。

faces-config.xmlの私のすべてのナビゲーションは、.xhtml拡張もあります。

現在、ブラウザは、FacesServletがナビゲートするファイルの.xhtml拡張子を持つURL全体を表示します。

すべてのナビゲーションに基本URL(localhost:8080/appname)を表示したいとします。

これは可能ですか?

答えて

0

あなたはURLパターンにFacesServlet自体をマップなどの場合など/static/resources/assets、として固定共通フォルダ内のように、このような画像、スタイルシート、JavaScriptのように、すべての静的なコンテンツを入れている場合はい、それは可能です*.xhtmlです。

その後、/*のURLパターンにマッピングされ、透過的にすべての静的コンテンツのリクエスト/レスポンスのチェーンを継続しFacesServletに残りをディスパッチされFilterを作成することができます。

String uri = ((HttpServletRequest) request).getRequestURI(); 

if (uri.startsWith("/static/")) { 
    chain.doFilter(request, response); // Goes to default servlet. 
} else { 
    request.getRequestDispatcher(uri + ".xhtml").forward(request, response); // Goes to faces servlet. 
} 

これは、facesサーブレットが実行されている場合にのみ使用可能なfacesコンテキストで実行する必要があるため、ナビゲーションハンドラでは不可能です。

関連する問題