【问题标题】:How to pass property of a java bean to another java bean?java - 如何将一个java bean的属性传递给另一个java bean?
【发布时间】:2012-11-13 09:54:42
【问题描述】:

我正在尝试从一个托管 bean 获取一个值到另一个托管 bean。我有一个获取用户名的 loginbean,我需要获取该值并将其放入另一个托管 bean sidebarbean。我正在使用 JSF 并认为我可以像 #{sidebarbean.setUserName(loginbean.username)} 但这不起作用。有什么建议吗?

听从你的建议

@ManagedBean(name = "sidebarbean")
@SessionScoped
public class SideBarBean {
    private ArrayList myContacts = new ArrayList();
    private String user;
    @PersistenceContext
    private EntityManager em;
    @Resource
    private UserTransaction utx;

    public SideBarBean() {

    }

    public ArrayList getMyContacts() {
        myContacts.clear();
        List<Contacts> list = em.createNamedQuery("Contacts.findByUsername")
            .setParameter("username", user).getResultList();
        for (Contacts c : list) {
            myContacts.add(c.getContact());
        }
        return myContacts;
    }

    public void setMyContacts(ArrayList myContacts) {
        this.myContacts = myContacts;
    }

    public String getUser() {
        return user;
    }

    public void setUser(String user) {
        this.user = user;
    }
}

@ManagedBean(name = "loginbean")
@SessionScoped
public class LoginBean {
    @PersistenceContext
    private EntityManager em;
    @Resource
    private UserTransaction utx;
    @ManagedProperty(value="#{sidebarbean}")
    private SideBarBean sbb;
    private String username;
    private String password;
    private Boolean verified = false;
    private Boolean authFail = false;

    public LoginBean() {
    }

    public void update(){
        sbb.setUser(username);
    }

我收到“无法创建托管 bean loginbean。发现以下问题:- 托管 bean loginbean 的属性 sbb 不存在。检查是否存在适当的 getter 和/或 setter 方法。”

【问题讨论】:

    标签: java jsf managed-bean


    【解决方案1】:

    您可以使用@ManagedProperty 注释,然后您可以访问SideBarBean 的同一实例。

    @ManagedBean(name="loginbean")
    public class LoginBean{
    
     @ManagedProperty(value="#{sidebarbean}")
     private SideBarBean sidebarbean;
    
     public void update(){
    
      sidebarbean.setUserName("xxxx");
    
     }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-07
      • 2015-06-29
      • 1970-01-01
      • 1970-01-01
      • 2014-02-21
      相关资源
      最近更新 更多