JSF勉強メモ

JSFを勉強していて気になった
一つのManagedBeanから他のManagedBeanへのアクセスなどのメモ。

FacesContextでリクエスト情報、
ExternalContextでサーブレット環境へアクセスできる。

//セッションからBeanを取得
		FacesContext context = FacesContext.getCurrentInstance();
		ExternalContext exContext = context.getExternalContext();
		HttpServletRequest req = (HttpServletRequest) exContext.getRequest();
		HttpSession se = req.getSession(false);
		HogeBean bean = (HogeBean)se.getAttribute("HogeBean");

//リクエストからBeanを取得
		FacesContext context = FacesContext.getCurrentInstance();
		ExternalContext exContext = context.getExternalContext();
		HttpServletRequest req = (HttpServletRequest) exContext.getRequest();
		FooBean bean = (FooBean)req.getAttribute("FooBean");

//リクエストからパラメータを取得
		ExternalContext exContext = FacesContext.getCurrentInstance().getExternalContext();
		String uid = (String)exContext.getRequestParameterMap().get("userId");

//なんかメッセージを入れたいとき(フリーダムに使うときはclientIdのつけ方は要検討?)
		FacesContext context = FacesContext.getCurrentInstance();
		context.addMessage(component.getClientId(context),  new FacesMessage("つぶやきました。"));