我的想法/要求是呈现动态生成的jsf页面并绑定/捕获用户填充的数据并保存到db。动态呈现部分工作正常,但无法将用户填充的数据捕获回我的managedbean。我正在使用Jsf 2.1。
LoginManagedBean.java (requestscoped)
private String fieldName;
//getters and setters
public String trytry()
{
HtmlInputText inputText = (HtmlInputText) FacesContext.getCurrentInstance().getApplication().createComponent(HtmlInputText.COMPONENT_TYPE);
inputText.setId("it");
inputText.setValueExpression("value", FacesContext.getCurrentInstance().getApplication().getExpressionFactory().createValueExpression(FacesContext.getCurrentInstance().getELContext(),"#{loginmb.keyValueMap['" + inputText.getId() + "']}", String.class));
panelGroupChilds.add(inputText);
grid.getChildren().add(panelGroupTextbox);
return "done";
}
public String save() {
System.out.println("fieldName --- " + this.fieldName);
return "save";
}
done.xhtml (dynamically rendered page)
<h:panelGrid binding="#{loginmb.docGridElems}"></h:panelGrid>
<h:commandButton id="cndB" value="SAVE" action="#{loginmb.save()}"></h:commandButton>
我能够在done.xhtml中看到渲染的文本框但是在提交保存按钮时,我无法获得&#34; feildName&#34;的值。 (它是null)。我无法找到我错在哪里。
我甚至尝试绑定地图但无法获得它。