【发布时间】:2014-04-16 10:58:07
【问题描述】:
是否可以从 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();
}
}
在来自BeanCredentials 的值eMail 的jsf 中已填充,但我无法访问ejb ServiceUser 中的值。我是否误解了一些注释或概念?
如何访问 ejb 中的托管 bean 属性?常见的解决方案是什么?
【问题讨论】:
标签: java jsf jakarta-ee javabeans