2013-09-28 6 views

답변

4

크기가 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}" 정도의 "일반적인"방법으로 바인딩하십시오.

+0

'guests = new String [numberOfGuests]; 줄에서 numberOfGuests는 항상 1을 반환합니다. 따라서 배열 크기는 항상 1입니다. 그 이유는 무엇입니까? 다른 클래스의'guests' 배열을 만들고 다른 클래스의'numberOfGuests'를 객체를 통해 액세스하고 있습니다. – Rajath

+0

다른 클래스'TailorTip'에'numberOfGuests' 클래스 인'Bill' 클래스의 새로운 객체를 만들고'bill.getNumberOfGuests()'를 사용하여 접근하기 때문에 의심 스럽습니다. 그것은'numberOfGuests'의 기본값 인 1을 취하고 있습니다. – Rajath

+0

뭔가 잘못하고 있는지 잘 모릅니다.하지만

를 추가 할 때까지는 예제 코드가 작동하지 않습니다. p : inputText의 내부. 나는 PF 6.0을 사용하고 있으므로 아마도 뭔가 바뀌었을까요? 예를 들어 사용자를 위해 작동하지 않는 경우를 대비하여 사람들에게 알리고 싶었습니다. –

관련 문제