Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 如何将动态生成表单中的输入值绑定到bean中列表的对象_Jsf_Jsf 2 - Fatal编程技术网

Jsf 如何将动态生成表单中的输入值绑定到bean中列表的对象

Jsf 如何将动态生成表单中的输入值绑定到bean中列表的对象,jsf,jsf-2,Jsf,Jsf 2,我正在从bean动态创建表单。我想将动态创建的组件绑定到DTO的列表,即第一个inputtext值必须保存为DTO对象,即列表[0],第二个inputtext值必须保存为DTO对象,即列表[1],第三个inputtext值必须保存为DTO对象,即列表[2] 豆 public void addInputText(字符串值、HtmlPanelGrid、, 基本属性属性DBDTO属性){ HTMLINPUTTEXINPUTTEXT=新的HtmlInputText(); inputText.setVal

我正在从bean动态创建表单。我想将动态创建的组件绑定到DTO的列表,即第一个inputtext值必须保存为DTO对象,即列表[0],第二个inputtext值必须保存为DTO对象,即列表[1],第三个inputtext值必须保存为DTO对象,即列表[2]

public void addInputText(字符串值、HtmlPanelGrid、,
基本属性属性DBDTO属性){
HTMLINPUTTEXINPUTTEXT=新的HtmlInputText();
inputText.setValue(值);
inputText.setStyleClass(“瓷砖”);
inputText.setValueExpression(
“价值”,
createValueExpression(“#{formGeneratorBean.input}”),
String.class);
grid.getChildren().add(inputText);
}
公共静态值表达式createValueExpression(字符串值表达式,
类值类型){
FacesContext context=FacesContext.getCurrentInstance();
返回上下文
.getApplication()
.getExpressionFactory()
.createValueExpression(context.getELContext(),valueExpression,
值类型);
}
xhtml

必须在此列表中填写已创建表单中的值

private transient List<ValuesDTO> valuesList = new ArrayList<ValuesDTO>();
private transient List valuesList=new ArrayList();

请帮我解决这个问题。

你已经自己给出了答案<代码>“{formGeneratorBean.valuesList[0]}”,
“{formGeneratorBean.valuesList[1]}”
等。。。只要想办法传递索引就行了。您确定需要java来创建输入吗?没有使用xhtml的选项?@Kukeltje表单没有任何物理组件,我从bean(即java代码)中添加了组件,使其具有动态表单。请阅读本文。其他可能的选择。或者看看例如PrimeFaces extensions dynaform。@Kukeltje我遵循了答案中的第二种方法,我可以动态创建表单。我只是被困在绑定值部分。DynaForm只是为我们提供了结构,组件部分仍然需要用html硬编码,这与我的要求相矛盾。是的,我知道,但请阅读最后一段
 <h:body>
       <h:form id="form" binding="#{formGeneratorBean.form}" />
    </h:body>
private transient List<ValuesDTO> valuesList = new ArrayList<ValuesDTO>();