2

HttpServletRequest を使用して、バックエンド Bean から jsf で現在のページの URL を取得できます。しかし、現在のページのタイトルも取得する方法はありますか?

4

1 に答える 1

3

いいえ、それは直接可能ではありません。<title>HTTP 要求に関連付けられた HTTP 応答の HTML タグのフレーバーとしてのみ表示されます。理論的には、XML パーサーを使用してビュー ファイルを解析し、<title>そこから要素を抽出することもできますが、それは明らかに不器用です。

逆にやったほうがいい。コントローラにとって重要な変数は、(ハードコードされた) ビューではなく、とにかくモデルに属します。タイトルをモデルのプロパティにして、次のように EL に表示します。

<title>#{page.title}</title>

URL に基づいてページをマッピングすることも、構文が/path/filename.xhtml. それらを に保持すると、Map<String, Page>次のようにページのタイトルを取得できるはずです

String title = pages.get(facesContext.getViewRoot().getViewId()).getTitle();
于 2012-06-22T20:33:31.123 に答える