すべてのリクエストをインターセプトするアプリケーションで構成されたフィルターがあり、 aおよびis として定義されている asUserInfoBean
という名前の特定の Bean の値を設定する必要があります。userInfo
ManagedBean
SessionScoped
のインスタンスを作成しUserInfoBean
て名前付きのセッションに設定し、のuserInfo
ような JSF ページでアクセスしようとすると#{userInfo.firstName}
、null
値が返されます。私のアプローチで何が間違っていますか?
Bean クラスは次のとおりです。
@ManagedBean (name="userInfo")
@SessionScoped
public class UserInfoBean {
private String firstName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public UserInfoBean(String firstName) {
this.firstName = firstName;
}
}
フィルタ コードは次のとおりです。
public void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException {
....
HttpSession session = request.getSession();
session.setAttribute("userInfo", new UserInfoBean("Joe"));
....
}
JSF コードは次のとおりです。
<h:outputText value="#{userInfo.firstName}" />