Maybe the following piece of code can help you out, I'm afraid there's not a component for this (at least to my knowledge):
HTML
<h:form>
<ui:repeat value=#{bean.values}
var="value">
<h:inputText value="#{value}" />
<br />
</ui:repeat>
<h:commandButton value="Extend">
<f:ajax listener="#{bean.extend}"
process="@form"
render="@form" />
</h:commandButton>
<h:commandButton action="#{bean.submit}"
value="Save" />
</h:form>
BEAN
@ManagedBean
@ViewScoped
public class Bean {
private List<String> values;
@PostConstruct
public void init() {
values = new ArrayList();
values.add("");
}
public void submit() {
// save values in database
}
public void extend() {
values.add("");
}
public void setValues(List<String> values) {
this.values = values;
}
public List<String> getValues() {
return values;
}
}