动态创建jsf组件并绑定回ManagedBean

时间:2015-08-05 10:51:13

标签: jsf

我的想法/要求是呈现动态生成的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)。我无法找到我错在哪里。

我甚至尝试绑定地图但无法获得它。

0 个答案:

没有答案