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で再帰的に辿って行けば全てのコンポーネントを走査も出来る。