我的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绑定到某个位置,以便检索用户输入的值?
答案 0 :(得分:1)
您需要创建一个值绑定,它将组件的值与某个bean属性绑定在一起。既然您正在使用(超过3年死亡和被遗弃)Woodstock库,我敢打赌您仍然使用传统的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
属性。