Details
-
Type: Improvement
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 2.0.2
-
Component/s: Sample Apps
-
Labels:None
-
Environment:ICEfaces 2 Comp Suite
-
Assignee Priority:P2
-
Affects:Sample App./Tutorial
Description
The Comp Suite sample application uses non-JSF-component markup in the templates files where an id is provided as an attribute. For example, in main-template.xhtml:
<span id="primary">
...
<ui:insert name="component-example"/>
</span>
This is deadly to portlet rendering because the ids cannot be namespaced and therefore cannot be guaranteed to be unique. While it may work in non-portlet applications, having ids that are not under JSF control could lead to other problems. The recommendation is to either:
- Remove the ids from the various <span> and <div> container tags. If they are being used for CSS, then consider style and class attributes instead.
- Switch to using JSF components like h:panelGroup so that the ids can be properly generated and namespaced by JSF and the PortletFaces Bridge.
<span id="primary">
...
<ui:insert name="component-example"/>
</span>
This is deadly to portlet rendering because the ids cannot be namespaced and therefore cannot be guaranteed to be unique. While it may work in non-portlet applications, having ids that are not under JSF control could lead to other problems. The recommendation is to either:
- Remove the ids from the various <span> and <div> container tags. If they are being used for CSS, then consider style and class attributes instead.
- Switch to using JSF components like h:panelGroup so that the ids can be properly generated and namespaced by JSF and the PortletFaces Bridge.
Ideally, only components would be used in the showcase and no markup at all.