Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Won't Fix
-
Affects Version/s: 3.1, 3.2, 3.3
-
Fix Version/s: EE-3.3.0.GA_P02, 4.0
-
Component/s: ACE-Components
-
Labels:None
-
Environment:All
-
Assignee Priority:P2
-
Workaround Exists:Yes
-
Workaround Description:Workaround is to use c:forEach instead of ui:repeat.
Description
The ace:dataExporter puts a "null" String value for coulms that are rendered using <ui:repeat> tags. For example this column is exported as "null" for every row.
....
<ace:column headerText="Column">
<ice:panelGroup>
<ui:repeat value="#{item.connectedToDetails}" var="conection">
<ice:commandLink value="#{conection.name}" actionListener="#{beanName.onExecuteSomeAction}">
<f:attribute name="internalId" value="#{conection.internalId}" />
</ice:commandLink>
</ui:repeat>
</ice:panelGroup>
</ace:column>
.....
DataExporter type = "xls"
....
<ace:column headerText="Column">
<ice:panelGroup>
<ui:repeat value="#{item.connectedToDetails}" var="conection">
<ice:commandLink value="#{conection.name}" actionListener="#{beanName.onExecuteSomeAction}">
<f:attribute name="internalId" value="#{conection.internalId}" />
</ice:commandLink>
</ui:repeat>
</ice:panelGroup>
</ace:column>
.....
DataExporter type = "xls"
By way of further explanation, it is not feasible to use c:forEach inside a dataTable as illustrated because the c:forEach is NOT processed at the same time the iteration of dataTable is processed. c:forEach is processed once in build JSF tree, at which time there is no "amount" variable defined. ace:dataTable defines the "amount" variable in the JSF restore/render phases. You can use the ui:repeat instead of c:forEach if you need to iterate in these phases, but note that the ace:dataExporter is not able to export these values.