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("つぶやきました。"));