Problems using a4j:include dynamically
fgc_fernando Nov 24, 2008 11:48 AMHello folks,
I'm trying to use the a4j:include component dynamically using Java.
I've created a simple page and bean, so that you can give me some light on this problem...
My test.jsp page
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html" %> <%@taglib prefix="f" uri="http://java.sun.com/jsf/core" %> <%@taglib prefix="a4j" uri="http://richfaces.org/a4j" %> <%@taglib prefix="rich" uri="http://richfaces.org/rich" %> <f:view> <html> <body> <h:form> <a4j:outputPanel layout="block"> JSP include: <a4j:include viewId="included.jsp"/> </a4j:outputPanel> <a4j:outputPanel layout="block" binding="#{PanelBean.panel}"> </a4j:outputPanel> </h:form> </body> </html> </f:view>
In this page, I've created 2 panels:
- one with a4j:include tag (which works fine)
- the other with a component binding. The include is added to the panel dynamically
This is the included page (included.jsp):
Hello!
And this is PanelBean (app.PanelBean):
package app; import javax.annotation.PostConstruct; import javax.faces.component.html.HtmlOutputText; import org.ajax4jsf.component.html.HtmlAjaxOutputPanel; import org.ajax4jsf.component.html.Include; public class PanelBean { private HtmlAjaxOutputPanel panel; @PostConstruct public void init(){ panel = new HtmlAjaxOutputPanel(); HtmlOutputText txt = new HtmlOutputText(); txt.setValue("Java code include: "); Include include = new Include(); include.setViewId("included.jsp"); panel.getChildren().add(txt); panel.getChildren().add(include); } public HtmlAjaxOutputPanel getPanel() { return panel; } public void setPanel(HtmlAjaxOutputPanel panel) { this.panel = panel; } }
As can be seen in the init() method, I've created a simple output text and an include component. The output text is rendered. The include is not.
When the page is accessed, it prints:
JSP include: Hello! Java code include:
When I would like it to print:
JSP include: Hello! Java code include: Hello!
I'm using:
Tomcat 6.0
JSF SUN RI 1.2_09-b02-FCS
Richfaces 3.2.2.GA
Does anybody have some ideas how to resolve this problem?
Thanks in advance!