JSF Primefaces outputLabel获取的值为null

时间:2017-03-27 13:24:00

标签: jsf primefaces

我的视图上有按钮。当我点击它时,有一个动作处理程序,我从面部上下文获取视图根,然后我得到表单。然后我遍历表单的facets和children,然后查找OutputLabel实例。当我得到它时,我试图从中获取值。但它总是为空,但在渲染页面上有价值。 OutputLabel(p:outputLabel)放在复合组件中...... 我错了什么?一些想法?

//编辑

public void buttonHandler(){
   FacesContext facesContext = FacesContext.getCurrentInstance();
   UIForm form = facesContext.getViewRoot().findComponent("formId");
   List<String> list = new ArrayList<>();
   collectLabels(form, list);
}

public void collectLabels(UIComponent component, List<String> list){
   Iterator<UIComponent> iterator = component.getFacetsAndChildren();

   while(iterator.hasNext()){
      UIComponent child = iterator.next();
      collectLabels(child, list);
   }

   if(component instanceof OutputLabel){
      list.add(((OutputLabel)component).getValue());
   } 
}      

我现在不上班。所以我现在不记得我的复合组件代码。但它包含<p:outputLabel for="#{cc.attr.id}" value="#{cc.attr.labelValue}" />

0 个答案:

没有答案