BalusC百分之百正確,但(正如他警告)他的答案將是無用的。這裏重要的一點是,你不需要也不希望第二個bean被管理。這是你的模型,而不是你的GUI。你可能想要的東西,如:
@ManagedBean
@ViewScoped
class PeopleHolder {
private List<Person> people = new ArrayList<Person>();
// not managed at all:
private Person currentPerson;
// just the getter, no need for a setter
public Person getCurrentPerson() { return currentPerson; }
@PostConstruct
public init(){ currentPerson = new Person(); }
public void addCurrentPersonToList() {
people.add(currentPerson);
init();
}
// just for test:
public List<People> getPeople() { return people; }
}
現在的一種形式:
<h:form>
<h:inputText value="#{peopleHolder.currentPerson.name}" />
<h:inputText value="#{peopleHolder.currentPerson.lastName}" />
<h:commandButton action="#{peopleHolder.addCurrentPersonToList}" />
</h:form>
謝謝,BalusC!我會記住你的建議,即在未來要求具體的幫助。 – holic87