我有一个名为的字段numberOfGuests
,它采用整数值。当我提交页面时,我想p:inputText
在下一页中numberOfGuests
动态插入与值一样多的字段。ui:repeat
只允许我遍历一个集合。我想知道我该怎么做。
谢谢。
我有一个名为的字段numberOfGuests
,它采用整数值。当我提交页面时,我想p:inputText
在下一页中numberOfGuests
动态插入与值一样多的字段。ui:repeat
只允许我遍历一个集合。我想知道我该怎么做。
谢谢。
只需创建一个 size 的集合(或者更简单的数组)numberOfGuests
。
例如在视图范围的 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}"
。