Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 3.2, 4.0.BETA
-
Fix Version/s: EE-3.3.0.GA
-
Component/s: ACE-Components
-
Labels:None
-
Environment:IF 3.x
-
Assignee Priority:P3
Description
When running the showcase with MyFaces, the RowState ace:dataTable example produces the following bug on row selection:
DataTable - Row state:
15-Jan-2013 12:42:26 PM org.apache.myfaces.shared.renderkit.html.HtmlRendererUtils decodeUIInput
WARNING: There should always be a submitted value for an input if it is rendered
, its form is submitted, and it was not originally rendered disabled or read-only. You cannot submit a form after disabling an input element via javascript. Consider setting read-only to true instead or resetting the disabled value back to false prior to form submission. Component : {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /showcase.xhtml][Class: javax.faces.component.html.HtmlBody,Id: __7][Class: javax.faces.component.html.HtmlPanelGroup,Id: __o][Class: javax.faces.component.html.HtmlPanelGroup,Id: __p][Class: javax.faces.component.html.HtmlPanelGroup,Id: __1b][Class: org.icefaces.ace.component.panel.Panel,Id: examplePanel][Class:javax.faces.component.html.HtmlPanelGroup,Id: __1e_6][Class: javax.faces.component.html.HtmlForm,Id: form][Class: org.icefaces.ace.component.datatable.DataTable,Id: carTableRowExpansion][Class: org.icefaces.ace.component.column.Column,Id: cost][Class:org.icefaces.ace.component.celleditor.CellEditor,Id: j_id_1e_29][Class: javax.faces.component.html.HtmlInputText,Id: costInput]}
The input components inside the cellEditors are being decoded (since the selection request was called via ace:ajax render/execute @this where @this is the table), however this request didn't submit the values of those fields to the server.
This would appear to be a bridge or MyFaces shortcoming as I'd expect the submission of the ace:dataTable to include the values of all child inputs.
DataTable - Row state:
15-Jan-2013 12:42:26 PM org.apache.myfaces.shared.renderkit.html.HtmlRendererUtils decodeUIInput
WARNING: There should always be a submitted value for an input if it is rendered
, its form is submitted, and it was not originally rendered disabled or read-only. You cannot submit a form after disabling an input element via javascript. Consider setting read-only to true instead or resetting the disabled value back to false prior to form submission. Component : {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /showcase.xhtml][Class: javax.faces.component.html.HtmlBody,Id: __7][Class: javax.faces.component.html.HtmlPanelGroup,Id: __o][Class: javax.faces.component.html.HtmlPanelGroup,Id: __p][Class: javax.faces.component.html.HtmlPanelGroup,Id: __1b][Class: org.icefaces.ace.component.panel.Panel,Id: examplePanel][Class:javax.faces.component.html.HtmlPanelGroup,Id: __1e_6][Class: javax.faces.component.html.HtmlForm,Id: form][Class: org.icefaces.ace.component.datatable.DataTable,Id: carTableRowExpansion][Class: org.icefaces.ace.component.column.Column,Id: cost][Class:org.icefaces.ace.component.celleditor.CellEditor,Id: j_id_1e_29][Class: javax.faces.component.html.HtmlInputText,Id: costInput]}
The input components inside the cellEditors are being decoded (since the selection request was called via ace:ajax render/execute @this where @this is the table), however this request didn't submit the values of those fields to the server.
This would appear to be a bridge or MyFaces shortcoming as I'd expect the submission of the ace:dataTable to include the values of all child inputs.
Revision #36342
Committed by nils.lundquist
A minute ago
ICE-8903- CellEditor decode temporarily alters facet rendered state to avoid MyFaces warning about lack of input for conditonally unrendered facets. Programmatic conditional rendering within a UIData may not use the rendered attribute permanently due to it not being state saved iteratively.This change avoids the warning, but doesn't change the input processing greatly. Hopefully it avoids whatever this warning was attempting to have us avoid.