Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 3.1
-
Fix Version/s: 3.2
-
Component/s: ACE-Components
-
Labels:None
-
Environment:Tomcat 7, Chrome, Firefox, IE
Description
When an EL expression is in-line (i.e. not as the value of an output component), it is not evaluated when exported, but the expression itself is exported. For example, the following markup will export the characters '#{row.id}' in the generated file, for every row:
<ace:column headerText="col1">
#{row.id}
</ace:column>
The following markup will export the value obtained after evaluating the expression (e.g. 'id001').
<ace:column headerText="col1">
<h:outputText value="#{row.id}" />
</ace:column>
The ace:dataExporter component needs to support in-line EL expressions as well.
<ace:column headerText="col1">
#{row.id}
</ace:column>
The following markup will export the value obtained after evaluating the expression (e.g. 'id001').
<ace:column headerText="col1">
<h:outputText value="#{row.id}" />
</ace:column>
The ace:dataExporter component needs to support in-line EL expressions as well.
Activity
Evgheni Sadovoi
created issue -
Evgheni Sadovoi
made changes -
Field | Original Value | New Value |
---|---|---|
Attachment | dynamicData.csv [ 14847 ] | |
Attachment | dynamicData.pdf [ 14848 ] | |
Attachment | Case11558.rar [ 14849 ] |
Ken Fyten
made changes -
Salesforce Case | [] | |
Fix Version/s | 3.2 [ 10338 ] | |
Assignee Priority | P2 | |
Assignee | Arturo Zambrano [ artzambrano ] |
Evgheni Sadovoi
made changes -
Salesforce Case | [5007000000NJO3T] |
Arturo Zambrano
made changes -
Summary | ace:dataExporter issue with dynamic ace:datatable | ace:dataExporter, in-line EL expressions aren't evaluated but exported verbatim |
Description |
There is an issue with ace:dataExporter and dynamic ace:dataTable. When an attempt is made to use dataExporter the file is downloaded but contain EL expressions in table cells similar to the following #{row[colModel.value]} ... #{row[colModel.value]}.... #{row[colModel.value]}... #{row[colModel.value]} instead of the data from a table. To reproduce use the source code attached to this ticket. Sample outcome from the export action has been attached as well |
When an EL expression is in-line (i.e. not as the value of an output component), it is not evaluated when exported, but the expression itself is exported. For example, the following markup will export the characters '#{row.id}' in the generated file, for every row: <ace:column headerText="col1"> #{row.id} </ace:column> The following markup will export the value obtained after evaluating the expression (e.g. 'id001'). <ace:column headerText="col1"> <h:outputText value="#{row.id}" /> </ace:column> The ace:dataExporter component needs to support in-line EL expressions as well. |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #30911 | Tue Sep 18 12:02:59 MDT 2012 | art.zambrano | |
Files Changed | ||||
MODIFY
/icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/dataexporter/Exporter.java
|
Migration
made changes -
Status | Open [ 1 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Ken Fyten
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |
Assignee Priority | P2 [ 10011 ] |
There's nothing wrong with the table being dynamic. The problem is that the EL expression is not inside a component. The exporter needs to manually extract the value from each component inside the column, because it cannot just call encodeAll() on the column. Since, the expression is not inside a component, it gets treated as plain text. If it is placed as the value of an <h:outputText /> component, the table is exported correctly.