크기가 numberOfGuests
인 모음 (또는 더 쉽게, 배열)을 만드십시오.
예. 즉,도 살아 빈 인스턴스와 입력 필드 인덱스 값 대신에 참조하는 범위 유지처럼 동일한 도면에 표시
<h:form>
<p:inputText value="#{bean.numberOfGuests}" />
<p:commandButton value="submit" action="#{bean.submit}" update=":guests" />
</h:form>
<h:panelGroup id="guests">
<h:form rendered="#{not empty bean.guests}">
<ui:repeat value="#{bean.guests}" varStatus="loop">
<p:inputText value="#{bean.guests[loop.index]}" />
</ui:repeat>
<p:commandButton value="save" action="#{bean.save}" />
</h:form>
</h:panelGroup>
결과에
private Integer numberOfGuests; // +getter+setter
private String[] guests; // +getter
public void submit() {
guests = new String[numberOfGuests];
}
: 도면에서 콩 범위 이 예에서 은 String
으로 변경 될 수 없습니다. Guest
과 같은 복잡한 객체 인 경우 value="#{guest.name}"
정도의 "일반적인"방법으로 바인딩하십시오.
'guests = new String [numberOfGuests]; 줄에서 numberOfGuests는 항상 1을 반환합니다. 따라서 배열 크기는 항상 1입니다. 그 이유는 무엇입니까? 다른 클래스의'guests' 배열을 만들고 다른 클래스의'numberOfGuests'를 객체를 통해 액세스하고 있습니다. – Rajath
다른 클래스'TailorTip'에'numberOfGuests' 클래스 인'Bill' 클래스의 새로운 객체를 만들고'bill.getNumberOfGuests()'를 사용하여 접근하기 때문에 의심 스럽습니다. 그것은'numberOfGuests'의 기본값 인 1을 취하고 있습니다. – Rajath
뭔가 잘못하고 있는지 잘 모릅니다.하지만
를 추가 할 때까지는 예제 코드가 작동하지 않습니다. p : inputText의 내부. 나는 PF 6.0을 사용하고 있으므로 아마도 뭔가 바뀌었을까요? 예를 들어 사용자를 위해 작동하지 않는 경우를 대비하여 사람들에게 알리고 싶었습니다. –