【发布时间】:2013-01-20 21:49:06
【问题描述】:
我有一个 Session 范围的 bean
import javax.faces.bean.SessionScoped;
import javax.inject.Named;
@Named
@SessionScoped
public class SessionBean implements Serializable{
我在一个过滤器中注入对象...
public class FiltroSeguridad implements Filter{
@Inject
private SessionBean sessionBean;
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
sessionBean.setRutaRedirect(httpRequest.getRequestURI());
}
}
但是,我在下一次交互中注入 SessionBean...
@Model
public class CuentaUsuarioWebBean implements Serializable{
@Inject
private SessionBean sessionBean;
public void loginUsuario() throws IOException{
sessionBean.getRutaRedirect();
}
}
但是属性getRutaRedirect()返回null
我通过 CDI 注释更改导入它仍然不起作用(javax.enterprise.context.SessionScoped),与 JSF 注释相同(javax.faces.bean.ManagedBean 和 @ManagedProperty)。
谢谢。
PD:对不起我的英语!
【问题讨论】:
-
这只有在你有一个
/WEB-INF/beans.xml文件时才有效(如果你选择了 CDI 方面和/或在一个有点理智的 CDI 教程中已经提到过,这个有点理智的 IDE 已经自动生成了,如果你已阅读教程)。你有这个文件吗?
标签: java jsf-2 dependency-injection javabeans cdi