9

たとえば、クラス Article にメソッドgetTitle ()とがありgetContent ()ます。

メソッドを使用した ArticlesService もありますgetAllArticles ()。意味のある名前 (で形成#{article.title}) を持つリンクのリストを作成する方法は? お気に入り:

http://mysiteaddress.com/article/first-article-title
http://mysiteaddress.com/article/how-to-make-links-in-jsf

..または同様のもの。

で必要なすべての機能を備えたリンクを作成できますが、適切<h:commandLink>な 'href' を作成する方法がわかりません。常に href '#' が含まれています。

で素敵なリンクを作成できます<h:outputLink>が、必要な機能を追加する方法がわかりません。


jsp で、リクエストから URL を解析し、対応する jsp ページへのリダイレクトを実行する独自のフロント コントローラーを作成しました。

JSFで同じ機能を実現するには?

4

2 に答える 2

13

これが既存のアプリケーションの改善を意図している場合、基本的Filterには「ダーティ」および「フレンドリ」な URL を検出する が必要です。「ダーティ」URL を検出すると、リクエストを「フレンドリー」URL にリダイレクトHttpServletResponse#sendRedirect()する必要があります。「フレンドリー」URL を検出すると、リクエストを「ダーティ」URL に転送RequestDispatcher#forward()する必要があります。この関連する質問で例を見つけることができます: How to use a servlet filter in Java to change a received servlet request url?

さらに、JSFなどViewHandlerに必要な「わかりやすい」URL を生成するためのカスタムも必要です。例は、Java EE Web アプリケーションの動的ディレクトリにあります<h:form><h:link>

これが新しいアプリケーションまたは変更可能なアプリケーションである場合は、車輪を再発明する代わりに、既存のきれいな URL ライブラリのいずれかを検討できます。

  • 完全な URL 書き換えソリューションであるPrettyFaces 。追加の XML 構成ファイルが必要ですpretty-config.xml。このライブラリは、URL を完全に変更したい場合や、古い URL から新しい URL へのリダイレクトを構成したい場合に役立ちます。
  • OmniFacesライブラリのFacesViews。これにより、既存の URL が単一のweb.xmlコンテキスト パラメータによって拡張されなくなります。また、マネージド Bean にパス パラメータを宣言的に注入できる「MultiViews」もサポートしています。たとえば、 と の値を/foo/bar/baz指すことができ、 によって注入することができます。/foo.xhtmlbarbaz@Param(pathIndex)

Mojarra Scalesライブラリの実験的なPrettyUrlPhaseListenerもありますが、これは古いライブラリであり、PrettyFaces は主にそれに基づいているため、努力する価値はありません。

于 2009-12-17T11:53:21.153 に答える
8

PrettyFacesを試しましたか?

シンプル、効果的、ブックマーク、JSF

PrettyFaces は、JSF1.2 および JSF2.0 用のオープンソース拡張機能であり、ブックマーク可能なプリティ URL の作成を可能にします。PrettyFaces は、ページ読み込みアクション、faces ナビゲーションとのシームレスな統合、動的ビュー ID 割り当て、管理パラメーターの解析、他の JSF フレームワークとの構成不要の互換性などの機能を含めて、この問題をエレガントに解決します。

SEO と一貫性:

どのビジネスでも、検索エンジン最適化が売上にとっていかに重要であるかを知っています。PrettyFaces は、SEO に適した URL と、改善されたカスタマー エクスペリエンスを可能にします。アドレスバーから購入ボタンまで、統一された分かりやすいサイトを作りましょう。

于 2009-12-17T11:55:41.027 に答える