我的Page1.jsp中有一个面板:

<webuijsf:panelLayout binding="#{Page1.dynamicFieldsPanel}"
    id="dynamicFieldsPanel" -rave-layout: grid"/>


然后我在Page1.java中有这个:

private PanelLayout dynamicFieldsPanel = new PanelLayout();

public void setDynamicFieldsPanel(PanelLayout pl)
{
    this.dynamicFieldsPanel = pl;
}

public PanelLayout getDynamicFieldsPanel()
{
    TextField textField = new TextField();
    this.dynamicFieldsPanel.getChildren().add(textField);

    return dynamicFieldsPanel;
}


如何将动态TextField绑定到某些内容,以便可以检索用户输入的值?

最佳答案

您需要创建一个值绑定,该绑定将组件的值与某些bean属性绑定在一起。既然您正在使用(已经死了3年以上且已废弃的)伍德斯托克库,我敢打赌,您仍在使用旧版JSF 1.1,因此下面是针对JSF 1.1的示例:

FacesContext context = FacesContext.getCurrentInstance();
ValueBinding value = context.getApplication().createValueBinding("#{bean.property}");
someComponent.setValueBinding("value", value);


#{bean.property}当然应该指向托管bean #{bean}中的有效和现有属性。如果数量或名称事先无法预测,则可以考虑为此使用Map属性。

07-24 21:15