URLs for seam links from a data table with data scroller
abafna.bafna.amit.gmail.com Nov 24, 2008 10:45 PMI have a data table with data scroller. The data table has a column with seam links with associated page parameters. When I click the link from first page of data table, URL is generated as expected and corresponding page is displayed properly. However, when I go to another page on the data table and try to access the links, URL is generated with values suffixed with some extra characters and the page is not displayed correctly.
I am using Seam 2.0.2.GA with Richfaces 3.2.2 on JBoss 4.2.2
Has anyone else faced this issue? Or am I doing something wrong?
Here is the code:
Data Table
<rich:dataTable id="reportsTable" value="#{reports}" var="report" rows="10" reRender="reportListDS">
<rich:column>#{report.name}</rich:column>
<rich:column>
<s:link value="Create Schedule"
rendered="#{report.activeScheduleId == 0}"
disabled="#{identity.email == null}"
view="/scheduler.xhtml">
<f:param name="scheduleId" />
<f:param name="reportId" value="#{report.id}"/>
<f:param name="fromView" value="reportSaved"/>
</s:link>
<s:link value="Edit Schedule"
rendered="#{report.activeScheduleId != 0}"
disabled="#{identity.email == null}"
view="/scheduler.xhtml">
<f:param name="scheduleId" value="#{report.activeScheduleId}" />
<f:param name="reportId" />
<f:param name="fromView" value="reportSaved"/>
</s:link>
</rich:column>
<rich:column>
<h:commandLink value="Inactivate" action="#{reportConfiguration.inactivateReport}">
<f:param name="reportId" value="#{report.id}" />
<s:conversationPropagation type="none" />
</h:commandLink>
</rich:column>
<f:facet name="footer">
<rich:datascroller id="reportListDS" align="center" maxPages="5"
renderIfSinglePage="false" />
</f:facet>
</rich:dataTable>
Pages.xml
<page view-id="/scheduler.xhtml" login-required="true" action="#{scheduleHome.checkData}">
<begin-conversation join="true" flush-mode="manual"/>
<description>Schedule Reports</description>
<param name="scheduleId" value="#{scheduleHome.id}" converterId="javax.faces.Long" />
<param name="reportId" value="#{scheduleHome.reportId}" converterId="javax.faces.Long"/>
<param name="fromView"/>
<navigation from-action="#{scheduleHome.checkData}">
<rule if-outcome="invalid">
<redirect view-id="/error.xhtml" />
</rule>
</navigation>
<navigation>
<rule if-outcome="success">
<end-conversation before-redirect="true"/>
<redirect view-id="/#{empty fromView ? 'mySavedReports' : fromView}.xhtml" />
</rule>
</navigation>
</page>
URL generated when link is clicked from first page of datatable
http://localhost:8080/RSOnlineSeam/scheduler.seam?reportId=100000062&scheduleId=&fromView=mySavedReports&cid=4
URL generated when link is clicked from second page of datatable
http://localhost:8080/RSOnlineSeam/scheduler.seam?reportId=100000087&scheduleId=&%2338;fromView=mySavedReports&%2338;cid=1