2011-11-18 72 views
3

我有几个不同的primefaces对话框,并且我实现了一个收听器,收到org.primefaces.event.CloseEvent。在此关闭事件的内部,我可以访问生成关闭事件org.primefaces.component.dialog.Dialog的UI组件。JSF 2.0 + Primefaces:查找某种类型的所有子组件

我的问题是我需要访问对话框中的所有输入字段。这些输入字段可能会隐藏在对话框的其他组件中。有没有人知道一个简单的方法(一个方法调用)来检索所有的输入字段递归的子组件?

+0

我不觉得有什么,它正是你正在寻找任何方便的方法。但是也可以在遍历列表时使用'getChildren'方法和过滤器。 http://javaserverfaces.java.net/nonav/docs/2.1/javadocs/index.html –

回答

0

这里是解决方案,我能拿出我自己:

private void doStuffToInputFields(UIComponent component) { 
    if (component instanceof UIInput) { 
     UIInput source = (UIInput) component; 

     //Add your custom logic here to do stuff with your input fields 

     return; 
    } 

    Iterator<UIComponent> children = component.getFacetsAndChildren(); 

    if (children != null) { 
     UIComponent child = null; 

     while (children.hasNext()) { 
      child = (UIComponent) children.next(); 
      resetInputFields(child); 
     } 
    } 
}