Problems with rendering HTML page
ozorin Oct 11, 2011 10:27 AMHi,
I use Richfaces 4.0.0 Final, Mojarra 2.1.2, and following problem:
When the programmatically generate a JSF Form (HtmlForm) that contains the UITabPanel, when reload HTML pages do not include all Richfaces javascript libraries in <head> (as a result of tabs are not rendered). The JSF Form itself was created when the first call (page is rendered normally) and stored in the session bean.
Bean:
public class DynamicApplicationBuilder implements Serializable { private static final long serialVersionUID = 1L; private String formId; private DynamicForm dynamicFormObject; private HtmlForm dynamicFormView; ... private void generatedApplicationForm() { ... FacesContext facesContext = FacesContext.getCurrentInstance(); Application application = facesContext.getApplication(); dynamicFormView = (HtmlForm) application.createComponent(facesContext, HtmlForm.COMPONENT_TYPE, "javax.faces.Form"); UITabPanel tabPanel = (UITabPanel) application.createComponent( facesContext, UITabPanel.COMPONENT_TYPE, "org.richfaces.TabPanelRenderer"); tabPanel.setSwitchType(SwitchType.ajax); for (int indexTab = 0; indexTab < dynamicFormObject.getFormContent().size(); indexTab++) { UITab tab = (UITab) application.createComponent(facesContext, UITab.COMPONENT_TYPE, "org.richfaces.TabRenderer"); ... tabPanel.getChildren().add(tab); } dynamicFormView.getChildren().add(tabPanel); HtmlCommandButton comBut = (HtmlCommandButton) application .createComponent(facesContext, HtmlCommandButton.COMPONENT_TYPE, "javax.faces.Button"); comBut.setValue("-Send-"); comBut.setActionExpression(JSFUtil.createAction("#{dynamicApplicationBuilder.testField}", String.class)); dynamicFormView.getChildren().add(comBut); } ... public HtmlForm getDynamicFormView() { if (dynamicFormView == null) { generatedApplicationForm(); } return dynamicFormView; } public void setDynamicFormView(HtmlForm dynamicFormView) { this.dynamicFormView = dynamicFormView; } }
XHTML page:
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets" template="/layout/lo_template.xhtml"> ... <ui:define name="mainContent"> <h:form id="formDAB" binding="#{dynamicApplicationBuilder.dynamicFormView}" /> </ui:define> </ui:composition>
Any ideas?