Я писал этот код .. надеюсь решить вашу проблему,
Страница JSF:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Dynamic Input</title>
</h:head>
<h:body>
<h:form>
<h:dataTable id="textlist" var="tbox" value="#{Bean.inputList}">
<h:column>
<h:inputText value="#{tbox}"/>
</h:column>
</h:dataTable>
<h:commandButton action="#{Bean.addInput}" value="Add Textbox"/>
</h:form>
</h:body>
</html>
Bean:
import java.util.ArrayList;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
@ManagedBean(name="Bean")
@ViewScoped
public class Bean implements java.io.Serializable {
private ArrayList inputList;
/** Creates a new instance of Bean */
public Bean() {
inputList=new ArrayList();
inputList.add(inputList.size());
}
public void addInput(){
inputList.add(inputList.size());
}
public ArrayList getInputList() {
return inputList;
}
public void setInputList(ArrayList inputList) {
this.inputList = inputList;
}
}
Это работает ... как начало. Вы можете увидеть, можете ли вы изменить код для соответствия вашим целям. :)
Я не знаю, существует ли какой-либо другой подход для добавления динамических элементов управления в JSF 2.0