I am currently working on an icefaces-based web app and I would like to achieve the following:
I have page A which includes pages B, C, and D as the contents of panel tabs (ice:panelTab). To do so I use the ui:include element where ui points to the JSF Facelets namespace.
Page A starts with the usual following code:
I also want pages B through D to be standalone. In other words, I also want pages B through D to start with the same code snippet as aforementioned. However if I include that into A then I get 2 JSP roots and redefined namespaces. In the end it works fine nonetheless but it is extremely poor practice to do so.
My question is therefore whether there is a smart way to include files and remove the root and/or surperfluous elements & definitions.
No matter what they say in Ohio, we're still first in flight!
When you use Facelets to include, each included item does have to be a properly-formed XML file, complete with whatever namespaces are referenced in that file. However what JSF assembles isn't going to include all these details. It uses them as part of the initial XML compilation process and discards them thereafter, when they're of no further use. If you read the JSF docs, you'll notice that Facelets ignores stuff outside the ui:component elements, for example.
You're probably worrying about a problem you don't actually have.
An IDE is no substitute for an Intelligent Developer.