2013-09-24 3 views
2

Я создаю заголовок для <h:panelgrid> из bean. теперь это jsf требуемый код (если я написал код на странице jsf).Как программироватьвсе создать <f: facet name = "header"> для HtmlPanelGrid

<f:facet name="header"> 
         <h:outputText value="Search Template "> 
         </h:outputText> 
        </f:facet> 

Моя проблема заключается в том, как добавить это в bean-файл с помощью кода ниже.

HtmlPanelGrid mainPanel = new HtmlPanelGrid(); 
mainPanel.setColumns(1); 
mainPanel.setStyleClass("searchtabtemplate"); 

HtmlOutputLabel htmlOutputLabelObj = new HtmlOutputLabel(); 
htmlOutputLabelObj.setValue(ApplicationConstants.NO_RECORD_FOUND); 

mainPanel.getChildren().add(htmlOutputLabelObj); 

Я попытался с этим кодом, но где я должен использовать facetTag я не получаю идею.

FacetTag facetTag = new FacetTag(); 
facetTag.setName("header"); 
HtmlOutputLabel htmlOutputLabel = new HtmlOutputLabel(); 
htmlOutputLabel.setValue("Search Template"); 

ответ

4

UIComponent суперкласс имеет метод getFacets(). Угадайте, что это делает :)

mainPanel.getFacets().put("header", htmlOutputLabel); 

Unrelated к конкретной проблеме, HtmlOutputLabel представляет <h:outputLabel>, который является неправильным инструментом для этой цели. Вместо этого используйте HtmlOutputText, который представляет <h:outputText>.