如何将Managed Sesson Bean注入实体? JSF-PrimeFaces
How to inject Managed Sesson Bean into Entity? JSF-PrimeFaces
我想将托管会话 Bean 注入 JSF 中的实体。
我有一个要求,需要根据用户在前端选择的区域显示不同的状态文本。 (国际化)对于一个状态 ID,我有 4 个状态文本,即 StatusText、StatusTextLang1、StatusTextLang2、StatusTextLang3。
为了支持此功能,我正在更改 StatusText 属性 的 getter 方法。在这里,我想从 SessionBean 中获取 Locale。因为它是一个实体,所以我得到一个空的 sessionBean。
@Entity
@Table(name="Projektstati")
public class Projektstati implements Serializable{
@ManagedProperty("#{sessionBean}")
private SessionBean sessionBean;
public void setSessionBean(SessionBean sessionBean){this.sessionBean = sessionBean;}
我检查了几个选项,然后就解决了。
FacesContext facesContext = FacesContext.getCurrentInstance();
sessionBean = (SessionBean) facesContext.getApplication()
.getVariableResolver().resolveVariable(facesContext, "sessionBean");
这可能不是一个很好的设计,但绝对是一个快速的解决方案。
我想将托管会话 Bean 注入 JSF 中的实体。
我有一个要求,需要根据用户在前端选择的区域显示不同的状态文本。 (国际化)对于一个状态 ID,我有 4 个状态文本,即 StatusText、StatusTextLang1、StatusTextLang2、StatusTextLang3。
为了支持此功能,我正在更改 StatusText 属性 的 getter 方法。在这里,我想从 SessionBean 中获取 Locale。因为它是一个实体,所以我得到一个空的 sessionBean。
@Entity
@Table(name="Projektstati")
public class Projektstati implements Serializable{
@ManagedProperty("#{sessionBean}")
private SessionBean sessionBean;
public void setSessionBean(SessionBean sessionBean){this.sessionBean = sessionBean;}
我检查了几个选项,然后就解决了。
FacesContext facesContext = FacesContext.getCurrentInstance();
sessionBean = (SessionBean) facesContext.getApplication()
.getVariableResolver().resolveVariable(facesContext, "sessionBean");
这可能不是一个很好的设计,但绝对是一个快速的解决方案。