0

我想将托管会话 Bean 注入 JSF 中的实体中。

我有一个要求,我需要根据用户在前端选择的区域设置显示不同的状态文本。(国际化)对于一个状态 ID,我有 4 个状态文本,即 StatusText、StatusTextLang1、StatusTextLang2、StatusTextLang3。

为了支持此功能,我正在更改 StatusText 属性的 getter 方法。在这里,我想从 SessionBean 中获取语言环境。因为它是一个实体,所以我得到一个空 sessionBean。

@Entity
@Table(name="Projektstati")
public class Projektstati implements Serializable{

@ManagedProperty("#{sessionBean}")
private SessionBean sessionBean;
public void setSessionBean(SessionBean sessionBean){this.sessionBean = sessionBean;}
4

1 回答 1

-1

我检查了几个选项并解决了以下问题。

FacesContext facesContext = FacesContext.getCurrentInstance();
    sessionBean = (SessionBean) facesContext.getApplication()
        .getVariableResolver().resolveVariable(facesContext, "sessionBean");

这可能不是一个伟大的设计,但绝对是一个快速的解决方案。

于 2015-07-09T09:53:56.913 回答