我的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
属性。