Ever wondered how you would use a composite component within a composite component? Or is it not possible? It most certainly is possible, so lets see how!
First we define level 2 (the deepest nesting)
<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:cc="http://java.sun.com/jsf/composite"> <head> <title></title> </head> <body> <cc:interface></cc:interface> <cc:implementation> This is coming from a nested composite component! Hurray :) </cc:implementation> </body> </html>
Then we define level 1 (as you normally would, but now you will use a composite component within this composite component)
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:cc="http://java.sun.com/jsf/composite" xmlns:mypanel="http://java.sun.com/jsf/composite/mypanel"> <head> <title></title> </head> <body> <cc:interface></cc:interface> <cc:implementation> <mypanel:mypanel/> </cc:implementation> </body> </html>
And then the page where we use the nested composite component
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:mypanel="http://java.sun.com/jsf/composite/mypanel"> <h:head> <title>Composite component</title> </h:head> <h:body> <h2>Composite component</h2> <mypanel:nested/> </h:body> </html>
Posted December 2, 2013