1
我有一個字段叫numberOfGuests
,它取一個整數值。當我提交該頁面時,我想要動態地在下一頁插入儘可能多的p:inputText
字段作爲numberOfGuests
值。 ui:repeat
只允許我迭代集合。我想知道我該怎麼做。如何動態插入primefaces輸入文本?
謝謝。
我有一個字段叫numberOfGuests
,它取一個整數值。當我提交該頁面時,我想要動態地在下一頁插入儘可能多的p:inputText
字段作爲numberOfGuests
值。 ui:repeat
只允許我迭代集合。我想知道我該怎麼做。如何動態插入primefaces輸入文本?
謝謝。
只需創建一個尺寸爲numberOfGuests
的集合(或更容易一個數組)。
E.g.在視圖中範圍的bean:
private Integer numberOfGuests; // +getter+setter
private String[] guests; // +getter
public void submit() {
guests = new String[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>
結果只是顯示在相同的視圖,其保持視圖範圍的bean實例活着和輸入字段由索引參照的值,而不是在本例中爲var
爲String
是不可變的。如果它是一個像Guest
這樣的複雜對象,那麼只需要像「value="#{guest.name}"
」這樣的「常用」方式綁定它們。
在客人= new String [numberOfGuests];'numberOfGuests總是爲我返回1。所以我的數組大小總是1.任何想法爲什麼這可能是?我在另一個類中創建數組'guests'並通過一個對象訪問另一個類的'numberOfGuests'。 – Rajath
我懷疑這是因爲我正在創建'Bill'類的新對象,它具有'numberOfGuests',在我的其他類'TailorTip'中並使用'bill.getNumberOfGuests()'訪問它。它採用了'numberOfGuests'的默認值,即1。 – Rajath
我不確定我是否做錯了或者沒有,但是示例代碼不適用於我,直到我添加了
在p:inputText裏面。我正在使用PF 6.0,所以可能有所改變? 無論如何只是爲了讓人們知道這個例子不適合你。 –