rich:editor and facelet pages problem
maguri Mar 20, 2009 5:53 PMHi,
I found a problem using rich:editor in a facelet environment. I build cruds this way:
1. A very simple holder page that uses ui:include to swap list and edit pages:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"
xmlns:s="http://jboss.com/products/seam/taglib">
<ui:composition template="/templates/top-menu-template.xhtml">
<style>
</style>
<ui:define name="body">
<h:panelGrid id="comCntrl" columns="1" style="margin: 0px auto;"
headerClass="tituloPagina">
<ui:include src="#{planIndicatorCurrValueController.activePage}" />
</h:panelGrid>
</ui:define>
</ui:composition>
</html>
The "Backing Bean" is in charge of deciding witch page to show.
2. If the edit page (a ui:composition page) has a rich:editor, it is not rendered.
I found a way to solve this problem by adding a "fake" rich:editor to the "holder page" so it looks like:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"
xmlns:s="http://jboss.com/products/seam/taglib">
<ui:composition template="/templates/top-menu-template.xhtml">
<style>
</style>
<ui:define name="body">
<rich:editor width="0" height="0" rendered="false"/>
<h:panelGrid id="comCntrl" columns="1" style="margin: 0px auto;"
headerClass="tituloPagina">
<ui:include src="#{planIndicatorCurrValueController.activePage}" />
</h:panelGrid>
</ui:define>
</ui:composition>
</html>
Now, the editor is rendered and works correctly.
Looks like a JS loading problem ?
Or most likely I am doing something wrong.
I would appreciate very much any comment on this