HttpServletRequest を使用して、バックエンド Bean から jsf で現在のページの URL を取得できます。しかし、現在のページのタイトルも取得する方法はありますか?
質問する
4501 次
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 に答える