我在我的应用程序中配置了一个过滤器,它拦截所有请求,它需要为某个UserInfoBean
名为 as的 bean 设置值,该 beanuserInfo
定义为 a ManagedBean
,即SessionScoped
.
当我尝试创建 的实例UserInfoBean
并将其设置为具有名称的会话userInfo
并尝试在 JSF 页面上访问它时#{userInfo.firstName}
,将返回一个null
值。我的方法有什么问题?
豆类是:
@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}" />