[英]How could I access managed bean properties inside an ejb?
可從ejb訪問托管bean屬性嗎? 我想從托管bean中獲取一些值到我的ejb中。 托管Bean屬性由jsf創建,效果很好,但是在我的ejb中,托管Bean屬性始終為null。
這是我的部分代碼:
托管Bean:
BeanCredentials
@ManagedBean
@RequestScoped
public class BeanCredentials implements Serializable {
private String eMail;
public String geteMail() {
return eMail;
}
public void seteMail(String eMail) {
this.eMail = eMail;
}
}
EJB:
ServiceUser
@Stateful
public class ServiceUser {
@PersistenceContext(unitName = "...")
private EntityManager em;
@Inject
private BeanCredentials credentials;
...
@Transactional
public void login() {
if(this.credentials.geteMail() == null) { /* Always true */
System.out.println(true);
}
}
}
public void login();
從另一個向前端提供用戶服務(即登錄,注銷,創建新用戶,顯示用戶信息)的托管bean中調用。 此托管bean委托ejb( ServiceUser
)處理所有必要的用戶任務
托管Bean:
BeanUser
@ManagedBean
@SessionScoped
public class BeanUser implements Serializable {
@EJB
private ServiceUser serviceUser;
...
public void login() {
this.serviceUser.login();
}
}
在jsf中,值BeanCredentials
eMail
已填充,但我無法在ejb ServiceUser
該值。 我會誤解一些注釋或概念嗎?
如何訪問ejb中的托管bean屬性? 常見的解決方案是什么?
您可以將值作為參數傳遞給任何EJB方法。
例如,在典型的創建表單中,您使用ManagedBean字段捕獲了來自用戶的所有輸入,然后通過具有這些值的服務調用EJB。 如果屬性數量很大,則可以使用Java傳輸對象。
您可以確保javax.inject jar存在於您的類路徑中。 如果您正在使用此行家,請嘗試包括
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.