에서 관리 빈 속성을 설정 . ?내가 사람의 목록을 복합 구성 요소를 만든</p> <p>사람의 목록을 포함 모델 <strong>사람</strong>라는 클래스와 뷰 범위 관리 빈 <strong>PersonController</strong>이 복합 구성 요소
@ManagedBean
@ViewScoped
public class PersonController {
private List<Person> persons;
public List<Person> getPersons() {
return persons;
}
public void setPersons(List<Person> persons) {
this.persons = persons;
}
@PostConstruct
public void init() {
persons = new ArrayList<>();
Person person1 = new Person();
person1.setFirstname("blah");
person1.setLastname("blah");
Person person2 = new Person();
person2.setFirstname("blah");
person2.setLastname("blah");
persons.add(person1);
persons.add(person2);
}
}
@ManagedBean
@ViewScoped
public class TestCompositeComponentController {
private List<Person> persons;
public List<Person> getPersons() {
return persons;
}
public void setPersons(List<Person> persons) {
this.persons = persons;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html >
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:composite="http://java.sun.com/jsf/composite">
<composite:interface componentType="testCompositeController">
<composite:attribute name="persons" />
</composite:interface>
<composite:implementation>
<h:outputText value="composite"></h:outputText>
</composite:implementation>
</html>
<!DOCTYPE html >
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:test="http://java.sun.com/jsf/composite/test"
xmlns:f="http://java.sun.com/jsf/core">
<h:head></h:head>
<h:body>
<test:test persons="#{personController.persons}" />
</h:body>
</html>
'@Inject'는 CDI 전용 주석이 아닙니까? 그것도'@ManagedProperty'와 함께 작동합니까? – mabi
제 제안은 TestCompositeComponentController에서 사람들을 독립적으로 처리하고, 결국 CDI를 통해 PersonController를 업데이트하는 것입니다. – Yamada