[英]How to inject Managed Sesson Bean into Entity? JSF-PrimeFaces
我想將托管會話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;}
我檢查了幾個選項,然后進行了研究。
FacesContext facesContext = FacesContext.getCurrentInstance();
sessionBean = (SessionBean) facesContext.getApplication()
.getVariableResolver().resolveVariable(facesContext, "sessionBean");
這可能不是一個好的設計,但絕對是一個快速的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.