かずきのBlog@hatena

日本マイクロソフトに勤めています。このブログは個人ブログなので、ここに書いている内容は個人的な意見で会社の公式見解ではない点にご注意ください。好きなものは XAML と C# 。苦手なものは型の無い言語です。

JSFの情報を取りたい

ManagedBean以外からJSFに関する情報にアクセスしたくなったのでメモ。

UIViewRoot root = FacesContext.getCurrentInstance().getViewRoot();
System.out.println("root.id:[" + root.getId() + "]");
System.out.println("root.clientId:[" + root.getClientId(getFacesContext()) + "]");
System.out.println("root.family:[" + root.getFamily() + "]");
System.out.println("root.viewId:[" + root.getViewId() + "]");

実行結果

root.id:[null]
root.clientId:[_id0]
root.family:[javax.faces.ViewRoot]
root.viewId:[/Page1.jsp]

getChildrenで再帰的に辿って行けば全てのコンポーネントを走査も出来る。