Details
-
Type:
New Feature
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: EE-2.0.0.Alpha1
-
Fix Version/s: EE-2.0.0.Beta1
-
Component/s: Core Extensions
-
Labels:None
-
Environment:ICEfaces 2, both compat and regular
-
Affects:Documentation (User Guide, Ref. Guide, etc.), Compatibility/Configuration
Description
In regular JSF/Facelets, when an html tag, that is not a UIComponent tag, is encountered, it's encapsulated as a UIInstructions component, which affects the component tree hierarchy in a way that's not entirely obvious. Let's say you have a panelGrid, with an html tag as a child, and then inside that an actual component.
<h:panelGrid columns="1">
<center>
<h:inputText .../>
</center>
</h:panelGrid>
You might think that the <center> tag will be a component which is the only child of the <h:panelGrid>, and the parent of the <h:inputText>, but what will instead happen is that <h:panelGrid> will have 3 children: a UIInstructions child corresponding to the opening <center> tag, the <h:inputText>, and a UIInstructions child corresponding to the closing </center> tag.
The h:panelGrid component will then render each if it's children into a separate <TD> tag, which will confuse the browser, since the starting <center> will be in a separate <TD> then the ending </center>. This is illustrated here: http://jira.icefaces.org/browse/ICE-5735
In ICEfaces 1.8.x and before, we had code that specifically made the HTML tags become like components, instead of becoming UIInstructions, so that they would behave as expected. This jira is for replicating that functionality into ICEfaces 2.
This is a jira for some of that previous work: http://jira.icefaces.org/browse/ICE-1092
These are the relevant classes:
com.icesoft.faces.facelets.UIXhtmlTagLibrary
com.icesoft.faces.facelets.UIXhtmlTagDecorator
com.icesoft.faces.facelets.UIXhtmlComponentHandler
com.icesoft.faces.component.UIXhtmlComponent
<h:panelGrid columns="1">
<center>
<h:inputText .../>
</center>
</h:panelGrid>
You might think that the <center> tag will be a component which is the only child of the <h:panelGrid>, and the parent of the <h:inputText>, but what will instead happen is that <h:panelGrid> will have 3 children: a UIInstructions child corresponding to the opening <center> tag, the <h:inputText>, and a UIInstructions child corresponding to the closing </center> tag.
The h:panelGrid component will then render each if it's children into a separate <TD> tag, which will confuse the browser, since the starting <center> will be in a separate <TD> then the ending </center>. This is illustrated here: http://jira.icefaces.org/browse/ICE-5735
In ICEfaces 1.8.x and before, we had code that specifically made the HTML tags become like components, instead of becoming UIInstructions, so that they would behave as expected. This jira is for replicating that functionality into ICEfaces 2.
This is a jira for some of that previous work: http://jira.icefaces.org/browse/ICE-1092
These are the relevant classes:
com.icesoft.faces.facelets.UIXhtmlTagLibrary
com.icesoft.faces.facelets.UIXhtmlTagDecorator
com.icesoft.faces.facelets.UIXhtmlComponentHandler
com.icesoft.faces.component.UIXhtmlComponent
Issue Links
- blocks
-
ICE-5323 Regression: ICE-3147 not working as expected
-
- Closed
-
Activity
Field | Original Value | New Value |
---|---|---|
Salesforce Case | [] | |
Fix Version/s | 2.0.0 [ 10230 ] |
Salesforce Case | [] | |
Fix Version/s | 2.0-Beta [ 10231 ] | |
Fix Version/s | 2.0.0 [ 10230 ] | |
Affects | [Documentation (User Guide, Ref. Guide, etc.), Compatibility/Configuration] | |
Security | Private [ 10001 ] | |
Assignee | Mark Collette [ mark.collette ] |
Salesforce Case | [] | |
Assignee Priority | P2 |
Fix Version/s | 2.0-Beta2 [ 10242 ] | |
Fix Version/s | 2.0-Beta1 [ 10231 ] |
Salesforce Case | [] | |
Assignee Priority | P2 | P3 |
Salesforce Case | [] | |
Fix Version/s | 2.0.0 [ 10230 ] | |
Fix Version/s | 2.0-Beta2 [ 10242 ] |
Salesforce Case | [] | |
Assignee Priority | P3 | P2 |
Assignee | Mark Collette [ mark.collette ] | Ted Goddard [ ted.goddard ] |
Salesforce Case | [] | |
Fix Version/s | 2.0.0-EE-Beta1 [ 10250 ] | |
Fix Version/s | 2.0.0 [ 10230 ] |
Link | This issue blocks ICE-6479 [ ICE-6479 ] |
Salesforce Case | [] | |
Assignee Priority | P2 | P1 |
Attachment | test.xhtml [ 12816 ] |
Assignee | Ted Goddard [ ted.goddard ] | Mandeep Hayher [ mandeep.hayher ] |
Status | Open [ 1 ] | Resolved [ 5 ] |
Assignee Priority | P1 | |
Resolution | Fixed [ 1 ] |
Resolution | Fixed [ 1 ] | |
Status | Resolved [ 5 ] | Reopened [ 4 ] |
Assignee | Mandeep Hayher [ mandeep.hayher ] | Ted Goddard [ ted.goddard ] |
Salesforce Case | [] | |
Assignee Priority | P1 |
Assignee | Ted Goddard [ ted.goddard ] | Mandeep Hayher [ mandeep.hayher ] |
Status | Reopened [ 4 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Status | Resolved [ 5 ] | Closed [ 6 ] |
Resolution | Fixed [ 1 ] | |
Status | Closed [ 6 ] | Reopened [ 4 ] |
Assignee Priority | P1 | |
Assignee | Mandeep Hayher [ mandeep.hayher ] | Ken Fyten [ ken.fyten ] |
Salesforce Case | [] | |
Component/s | Core Extensions [ 10051 ] |
Status | Reopened [ 4 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Status | Resolved [ 5 ] | Closed [ 6 ] |
Need a feasibility assessment for this.