我有一个问卷表格,其中组件(问题)都是在我的支持 bean 中以编程方式生成的。
在表单提交事件中,我需要收集所有用户输入并将它们存储在数据库中。
但是 JSF 不能识别动态生成的组件,只能找到我的 Facelets 页面中的组件,它们是我的面板网格和提交按钮。这是我的 submit() 方法。
public boolean submit() {
UIViewRoot viewRoot = FacesContext.getCurrentInstance().getViewRoot();
UIComponent formComponent = viewRoot.findComponent("mainForm"); //form id
HtmlForm form = (HtmlForm)formComponent;
List<UIComponent> componentList = form.getChildren();
for(int p=0; p<componentList.size(); p++) {
UIComponent component = componentList.get(p);
System.out.println("The Component ID is:"+component.getId());
}
return true;
}
那么除了上述方法之外,有谁知道我可以在哪里寻找我的组件?