如何从JSF2ManagedProperty引用Java集合条目?

如何从JSF2ManagedProperty引用Java集合条目?,jsf,dependency-injection,jsf-2,managed-bean,Jsf,Dependency Injection,Jsf 2,Managed Bean,我有一个应用程序,它有一个bean,其中包含一个联系人列表,这些联系人在整个应用程序中从各种域对象引用: @ManagedBean @SessionScoped public class ContactHolder implements Serializable { private ArrayList<Contact> contactsList; //getters and setters... } 由于用户可以选择从现有联系人中进行选择或为每个域对象创建新联系人,

我有一个应用程序,它有一个bean,其中包含一个联系人列表,这些联系人在整个应用程序中从各种域对象引用:

@ManagedBean
@SessionScoped
public class ContactHolder implements Serializable {
    private ArrayList<Contact> contactsList;
    //getters and setters...
}
由于用户可以选择从现有联系人中进行选择或为每个域对象创建新联系人,因此可以从多个域对象引用
contacts列表中的相同联系人条目。在JSF2中,是否有方法引用/注入特定的Java集合条目作为ManagedProperty?还是有更好的方法来处理这种情况


谢谢

从理论上讲,我看到了记住和传递列表索引的方法,但这最终会非常笨拙

更好的是,如果您的目标是支持Servlet 3.0/EL 2.2的容器(Tomcat 7、Glassfish 3等),其中支持使用附加参数调用方法,或者可以安装为EL 2.1添加相同增强功能的容器,那么您应该能够将该对象作为操作方法参数传递

例如


感谢您的快速回复!
@ManagedBean
public class Claim implements Serializable {
    private Contact insured; //needs to reference entry in contactsList
}

@ManagedBean
public class Vehicle implements Serializable {
    private Contact driver; //needs to reference entry in contactsList
}
<h:dataTable value="#{contactHolder.contacts}" var="contact">
    <h:column>
        <h:commandButton value="Claim" action="#{claim.doAction(contact)}" />
    </h:column>
</h:dataTable>
public void doAction(Contact contact) {
    // ...
}