7 Replies Latest reply on Nov 13, 2009 5:36 PM by kblief.kblief.gmail.com

    Sorting Columns and Long Running Conversation

    jpalmer1026.jpalmer1026.mchsi.com

      I am having some trouble implementing sorting where the table to sort is contained in a page involved in a long running conversation. It looks like since the conversation id isn't changing (since it's a long running conversation), the query is never executed. The sorting works find when the cid is removed. Anyone know of a way to resolve this?

        • 1. Re: Sorting Columns and Long Running Conversation
          v.lukoyanov

          Hm, can we see some code?


          --------

          My seam website

          • 2. Re: Sorting Columns and Long Running Conversation
            jpalmer1026.jpalmer1026.mchsi.com

            DmaCaseEdit.xhtml (this is the page that is starting the long running conversation when I choose the select employee link)






            <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
            <ui:composition xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:s="http://jboss.com/products/seam/taglib"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core"
                 xmlns:h="http://java.sun.com/jsf/html"
                 xmlns:a="http://richfaces.org/a4j"
                 xmlns:rich="http://richfaces.org/rich" template="layout/template.xhtml">
            
                 <ui:define name="tabs">
                      <ul class="tab-list">
                        <li><h:outputLink value="home.seam">Dashboard</h:outputLink></li>
                        <li><a href="#content">Cases</a></li>
                        <li><h:outputLink value="EmployeeList.seam">Employees</h:outputLink></li>
                    </ul>
            
                    <script type="text/javascript">
                    jQuery(document).ready(function(){jQuery('#tabs').tabs({ selected: 1 });});
                    </script>
                 </ui:define>
                 
                 <ui:define name="body">
            
                      <div id="content">
                      <h:form id="dmaCase" styleClass="edit">
            
                           <rich:panel>
                                <f:facet name="header">#{dmaCaseHome.managed ? 'Edit' : 'Add'} case</f:facet>
            
                                <s:decorate id="dateOfRequestField" template="layout/edit.xhtml">
                                     <ui:define name="label">Request Date</ui:define>
                                     <rich:calendar id="dateOfRequest"
                                          value="#{dmaCaseHome.instance.dateOfRequest}"
                                          datePattern="MM/dd/yyyy" required="true">
                                          <a:support event="onblur" reRender="dateOfRequestField"
                                                ajaxSingle="true" />
                                      </rich:calendar>
                                </s:decorate>
            
            
                                <s:decorate id="phoneField" template="layout/edit.xhtml">
                                     <ui:define name="label">Phone Number</ui:define>
                                     <h:inputText id="phone" size="14" maxlength="14"
                                          value="#{dmaCaseHome.instance.phone}" required="true">
                                          <a:support event="onblur" reRender="phoneField"
                                                ajaxSingle="true" />
                                     </h:inputText>
                                </s:decorate>
            
            
                                <s:decorate id="divisionField" template="layout/edit.xhtml">
                                     <ui:define name="label">Division</ui:define>
                                     <h:selectOneMenu id="division"
                                          value="#{dmaCaseHome.instance.division}" required="true">
                                          <s:selectItems var="_division" value="#{divisions}"
                                               label="#{_division.label}" noSelectionLabel="-- Select --" />
                                          <s:convertEnum />
                                          <a:support event="onblur" reRender="divisionField"
                                                ajaxSingle="true" />
                                     </h:selectOneMenu>
                                </s:decorate>
            
            
                                <s:decorate id="violationField" template="layout/edit.xhtml">
                                     <ui:define name="label">Violation</ui:define>
                                     <h:selectOneMenu id="violation"
                                          value="#{dmaCaseHome.instance.violation}" required="true">
                                          <s:selectItems var="_violation" value="#{violations}"
                                               label="#{_violation.label}" noSelectionLabel="-- Select --" />
                                          <s:convertEnum />
                                          <a:support event="onblur" reRender="violationField"
                                                ajaxSingle="true" />
                                     </h:selectOneMenu>
                                </s:decorate>
            
            
                                <s:decorate id="dateOfOccurrenceField" template="layout/edit.xhtml">
                                     <ui:define name="label">Date of occurrence</ui:define>
                                     <rich:calendar id="dateOfOccurrence"
                                          value="#{dmaCaseHome.instance.dateOfOccurrence}"
                                          datePattern="MM/dd/yyyy" required="true" />
                                </s:decorate>
            
            
                                <s:decorate id="caseStatusField" template="layout/edit.xhtml">
                                     <ui:define name="label">Case status</ui:define>
                                     <h:selectOneMenu id="caseStatus"
                                          value="#{dmaCaseHome.instance.caseStatus}" required="true">
                                          <s:selectItems var="_caseStatus" value="#{caseStatuses}"
                                               label="#{_caseStatus.label}" noSelectionLabel="-- Select --" />
                                          <s:convertEnum />
                                          <a:support event="onblur" reRender="caseStatusField"
                                                ajaxSingle="true" />
                                     </h:selectOneMenu>
                                </s:decorate>
            
            
                                <s:decorate id="descriptionField" template="layout/edit.xhtml">
                                     <ui:define name="label">Incident Description</ui:define>
                                     <h:inputTextarea id="description" cols="80" rows="3"
                                          value="#{dmaCaseHome.instance.description}" required="true">
                                          <a:support event="onblur" reRender="descriptionField"
                                               ajaxSingle="true" />
                                     </h:inputTextarea>
                                </s:decorate>
            
            
                                <s:decorate id="locationOfOccurrenceField"
                                     template="layout/edit.xhtml">
                                     <ui:define name="label">Location</ui:define>
                                     <h:inputText id="locationOfOccurrence" size="100" maxlength="100"
                                          value="#{dmaCaseHome.instance.locationOfOccurrence}"
                                          required="true">
                                          <a:support event="onblur" reRender="locationOfOccurrenceField"
                                               ajaxSingle="true" />
                                     </h:inputText>
                                </s:decorate>
            
            
                                <s:decorate id="witnessesField" template="layout/edit.xhtml">
                                     <ui:define name="label">Witnesses</ui:define>
                                     <h:inputTextarea id="witnesses" cols="80" rows="3"
                                          value="#{dmaCaseHome.instance.witnesses}" required="true">
                                          <a:support event="onblur" reRender="witnessesField"
                                               ajaxSingle="true" />
                                     </h:inputTextarea>
                                </s:decorate>
            
            
                                <s:decorate id="documentationField" template="layout/edit.xhtml">
                                     <ui:define name="label">Documentation</ui:define>
                                     <h:selectOneMenu id="documentation"
                                          value="#{dmaCaseHome.instance.documentation}" required="true">
                                          <s:selectItems var="_documentationType"
                                               value="#{documentationTypes}" label="#{_documentationType.label}"
                                               noSelectionLabel="-- Select --" />
                                          <s:convertEnum />
                                          <a:support event="onblur" reRender="documentationField"
                                                ajaxSingle="true" />
                                     </h:selectOneMenu>
                                </s:decorate>
            
                                <div style="clear: both"><span class="required">*</span>
                                required fields</div>
            
                           </rich:panel>
            
                           <div class="actionButtons"><h:commandButton id="save"
                                value="Save" action="#{dmaCaseHome.persist}"
                                disabled="#{!dmaCaseHome.wired}" rendered="#{!dmaCaseHome.managed}" />
            
                           <h:commandButton id="update" value="Save"
                                action="#{dmaCaseHome.update}" rendered="#{dmaCaseHome.managed}" />
            
                           <h:commandButton id="delete" value="Delete"
                                action="#{dmaCaseHome.remove}" immediate="true"
                                rendered="#{dmaCaseHome.managed}" /> 
                           <s:button id="cancelEdit" value="Cancel" propagation="end" 
                                view="/DmaCase.xhtml" rendered="#{dmaCaseHome.managed}" /> 
                           <s:button id="cancelAdd" value="Cancel" propagation="end"
                                view="/#{empty dmaCaseFrom ? 'DmaCaseList' : dmaCaseFrom}.xhtml"
                                rendered="#{!dmaCaseHome.managed}" />
                           </div>
                      </h:form>
            
                      <rich:tabPanel switchType="ajax">
            
                           <rich:tab label="Employee">
                                <div class="association" id="employeeParent">
                                     <h:outputText value="There is no employee associated with this dmaCase."
                                                      rendered="#{dmaCaseHome.instance.employee == null}" /> 
                                    <rich:dataTable var="_employee" value="#{dmaCaseHome.instance.employee}"
                                                         rendered="#{dmaCaseHome.instance.employee != null}"
                                                         rowClasses="rvgRowOne,rvgRowTwo" id="employeeTable">
                                          <h:column>
                                               <f:facet name="header">Employee bureau</f:facet>
                                               <h:outputText value="#{_employee.employeeNumber}" />
                                          </h:column>
                                          <h:column>
                                               <f:facet name="header">Employee first name</f:facet>
                                               <h:outputText value="#{_employee.firstName}" />
                                          </h:column>
                                          <h:column>
                                               <f:facet name="header">Employee last name</f:facet>
                                               <h:outputText value="#{_employee.lastName}" />
                                          </h:column>
                                          <h:column>
                                               <f:facet name="header">Employee position &#47; title</f:facet>
                                               <h:outputText value="#{_employee.positionTitle}" />
                                          </h:column>
                                     </rich:dataTable>
                 
                                     <div class="actionButtons">
                                          <s:button id="#{dmaCaseHome.instance.employee != null ? 'changeParentemployee' : 'selectParentemployee'}"
                                                      value="#{dmaCaseHome.instance.employee != null ? 'Change' : 'Select'} employee"
                                                      view="/EmployeeList.xhtml">
                                               <f:param name="from" value="DmaCaseEdit" />
                                          </s:button>
                                     </div>
                                </div>
                           </rich:tab>
                           
                           <rich:tab label="Supervisor">
                                <div class="association" id="supervisorParent">
                                     <h:outputText value="There is no supervisor associated with this dmaCase."
                                                      rendered="#{dmaCaseHome.instance.supervisor == null}" /> 
                                    <rich:dataTable var="_supervisor" value="#{dmaCaseHome.instance.supervisor}"
                                                         rendered="#{dmaCaseHome.instance.supervisor != null}"
                                                         rowClasses="rvgRowOne,rvgRowTwo" id="supervisorTable">
                                          <h:column>
                                               <f:facet name="header">Supervisor bureau</f:facet>
                                               <h:outputText value="#{_supervisor.employeeNumber}" />
                                          </h:column>
                                          <h:column>
                                               <f:facet name="header">Supervisor first name</f:facet>
                                               <h:outputText value="#{_supervisor.firstName}" />
                                          </h:column>
                                          <h:column>
                                               <f:facet name="header">Supervisor last name</f:facet>
                                               <h:outputText value="#{_supervisor.lastName}" />
                                          </h:column>
                                          <h:column>
                                               <f:facet name="header">Supervisor position &#47; title</f:facet>
                                               <h:outputText value="#{_supervisor.positionTitle}" />
                                          </h:column>
                                     </rich:dataTable>
                                     
                                     <div class="actionButtons">
                                          <s:button id="#{dmaCaseHome.instance.supervisor != null ? 'changeParentsupervisor' : 'selectParentsupervisor'}"
                                                      value="#{dmaCaseHome.instance.supervisor != null ? 'Change' : 'Select'} supervisor"
                                                      view="/SupervisorList.xhtml">
                                               <f:param name="from" value="DmaCaseEdit" />
                                          </s:button>
                                     </div>
                 
                                </div>
                           </rich:tab>
                           
                           <rich:tab label="Initiator">
                                <div class="association" id="initiatorParent">
                                     <h:outputText value="There is no initiator associated with this dmaCase."
                                                      rendered="#{dmaCaseHome.instance.initiator == null}" /> 
                                    <rich:dataTable var="_initiator" value="#{dmaCaseHome.instance.initiator}"
                                                         rendered="#{dmaCaseHome.instance.initiator != null}"
                                                         rowClasses="rvgRowOne,rvgRowTwo" id="initiatorTable">
                                          <h:column>
                                               <f:facet name="header">Initiator bureau</f:facet>
                                               <h:outputText value="#{_initiator.employeeNumber}" />
                                          </h:column>
                                          <h:column>
                                               <f:facet name="header">Initiator first name</f:facet>
                                               <h:outputText value="#{_initiator.firstName}" />
                                          </h:column>
                                          <h:column>
                                               <f:facet name="header">Initiator last name</f:facet>
                                               <h:outputText value="#{_initiator.lastName}" />
                                          </h:column>
                                          <h:column>
                                               <f:facet name="header">Initiator position &#47; title</f:facet>
                                               <h:outputText value="#{_initiator.positionTitle}" />
                                          </h:column>
                                     </rich:dataTable>
                                     
                                     <div class="actionButtons">
                                          <s:button id="#{dmaCaseHome.instance.initiator != null ? 'changeParentinitiator' : 'selectParentinitiator'}"
                                                      value="#{dmaCaseHome.instance.initiator != null ? 'Change' : 'Select'} initiator"
                                                      view="/InitiatorList.xhtml">
                                               <f:param name="from" value="DmaCaseEdit" />
                                          </s:button>
                                     </div>
                 
                                </div>
                           </rich:tab>
                           </rich:tabPanel>
                      </div>
                      
                 </ui:define>
            
            </ui:composition>
            







            EmployeeList.xhtml (this is the page where clicking on the column headings isn't causing sorting to take place. it works fine when not part of a long running conversation)



            <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
            <ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:s="http://jboss.com/products/seam/taglib"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:rich="http://richfaces.org/rich"
                template="layout/template.xhtml">
            
                 <ui:define name="tabs">
                      <ul class="tab-list">
                        <li><h:outputLink value="home.seam">Dashboard</h:outputLink></li>
                        <li><h:outputLink value="DmaCaseList.seam">Cases</h:outputLink></li>
                        <li><a href="#content">Employees</a></li>                            
                    </ul>
                    
                    <script type="text/javascript">
                    jQuery(document).ready(function(){jQuery('#tabs').tabs({ selected: 2 });});
                    </script>
                 </ui:define>
                 
            <ui:define name="body">
                 
                 <div id="content">
                <h:form id="employeeSearch" styleClass="edit">
            
                           <rich:simpleTogglePanel label="Employee Search Filter"
                                switchType="ajax">
            
                                <s:decorate template="layout/display.xhtml">
                                     <ui:define name="label">Bureau</ui:define>
                                     <h:selectOneMenu id="bureau"
                                          value="#{employeeCriteria.bureau}">
                                          <s:selectItems var="_bureau" value="#{bureaus}"
                                               label="#{_bureau.label}" noSelectionLabel="-- Select --" />
                                          <s:convertEnum />
                                     </h:selectOneMenu>
                                </s:decorate>
            
                                <s:decorate template="layout/display.xhtml">
                                     <ui:define name="label">First name</ui:define>
                                     <h:inputText id="firstName"
                                          value="#{employeeExample.firstName}" />
                                </s:decorate>
            
                                <s:decorate template="layout/display.xhtml">
                                     <ui:define name="label">Last name</ui:define>
                                     <h:inputText id="lastName"
                                          value="#{employeeExample.lastName}" />
                                </s:decorate>
            
                                <s:decorate template="layout/display.xhtml">
                                     <ui:define name="label">Position title</ui:define>
                                     <h:inputText id="positionTitle"
                                          value="#{employeeExample.positionTitle}" />
                                </s:decorate>
            
                                <s:decorate template="layout/display.xhtml">
                                     <ui:define name="label">Match</ui:define>
                                     <h:selectOneRadio id="logic"
                                          value="#{employeeList.restrictionLogicOperator}"
                                          styleClass="radio">
                                          <f:selectItem itemLabel="All" itemValue="and" />
                                          <f:selectItem itemLabel="Any" itemValue="or" />
                                     </h:selectOneRadio>
                                </s:decorate>
            
                           </rich:simpleTogglePanel>
            
                           <div class="actionButtons"><h:commandButton id="search"
                                value="Search" action="/EmployeeList.xhtml" /> <s:button id="reset"
                                value="Reset" includePageParams="false" /></div>
            
                      </h:form>
            
                      <rich:panel>
                           <f:facet name="header">Employee Search Results (#{empty employeeList.resultList ? 0 : (employeeList.paginated ? employeeList.resultCount : employeeList.resultList.size)})</f:facet>
                           <div class="results" id="employeeList">
                                <h:outputText value="The employee search returned no results."
                                     rendered="#{empty employeeList.resultList}" /> 
                                <rich:dataTable id="employeeList" var="_employee" 
                                     value="#{employeeList.resultList}"
                                     rendered="#{not empty employeeList.resultList}">
                                     <h:column>
                                          <f:facet name="header">
                                               <ui:include src="layout/sort.xhtml">
                                                    <ui:param name="entityList" value="#{employeeList}" />
                                                    <ui:param name="propertyLabel" value="Bureau" />
                                                    <ui:param name="propertyPath" value="e.employeeNumber" />
                                               </ui:include>
                                          </f:facet>
                                          <h:outputText value="#{_employee.employeeNumber}" />
                                     </h:column>
                                     <h:column>
                                          <f:facet name="header">
                                               <ui:include src="layout/sort.xhtml">
                                                    <ui:param name="entityList" value="#{employeeList}" />
                                                    <ui:param name="propertyLabel" value="First name" />
                                                    <ui:param name="propertyPath" value="e.firstName" />
                                               </ui:include>
                                          </f:facet>
                                          <h:outputText value="#{_employee.firstName}" />
                                     </h:column>
                                     <h:column>
                                          <f:facet name="header">
                                               <ui:include src="layout/sort.xhtml">
                                                    <ui:param name="entityList" value="#{employeeList}" />
                                                    <ui:param name="propertyLabel" value="Last name" />
                                                    <ui:param name="propertyPath" value="e.lastName" />
                                               </ui:include>
                                          </f:facet>
                                          <h:outputText value="#{_employee.lastName}" />
                                     </h:column>
                                     <h:column>
                                          <f:facet name="header">
                                               <ui:include src="layout/sort.xhtml">
                                                    <ui:param name="entityList" value="#{employeeList}" />
                                                    <ui:param name="propertyLabel" value="Position title" />
                                                    <ui:param name="propertyPath" value="e.positionTitle" />
                                               </ui:include>
                                          </f:facet>
                                          <h:outputText value="#{_employee.positionTitle}" />
                                     </h:column>
                                     <rich:column styleClass="action">
                                          <f:facet name="header">Action</f:facet>
                                          <s:link view="/#{empty from ? 'Employee' : from}.xhtml"
                                               value="#{empty from ? 'View' : 'Select'}"
                                               propagation="#{empty from ? 'none' : 'default'}"
                                               id="employeeViewId">
                                                    <f:param name="employeeId" value="#{_employee.id}" />
                                          </s:link>
                                       #{' '}
                                       <s:link view="/EmployeeEdit.xhtml" value="Edit"
                                               propagation="none" id="employeeEdit" rendered="#{empty from}">
                                                    <f:param name="employeeId" value="#{_employee.id}" />
                                          </s:link>
                                     </rich:column>
                                </rich:dataTable>
                           </div>
                      </rich:panel>
            
                      <div class="tableControl"><s:link view="/EmployeeList.xhtml"
                           rendered="#{employeeList.previousExists}"
                           value="#{messages.left}#{messages.left} First Page" id="firstPage">
                           <f:param name="firstResult" value="0" />
                      </s:link> <s:link view="/EmployeeList.xhtml"
                           rendered="#{employeeList.previousExists}"
                           value="#{messages.left} Previous Page" id="previousPage">
                           <f:param name="firstResult"
                                value="#{employeeList.previousFirstResult}" />
                      </s:link> <s:link view="/EmployeeList.xhtml"
                           rendered="#{employeeList.nextExists}"
                           value="Next Page #{messages.right}" id="nextPage">
                           <f:param name="firstResult" value="#{employeeList.nextFirstResult}" />
                      </s:link> <s:link view="/EmployeeList.xhtml"
                           rendered="#{employeeList.nextExists}"
                           value="Last Page #{messages.right}#{messages.right}" id="lastPage">
                           <f:param name="firstResult" value="#{employeeList.lastFirstResult}" />
                      </s:link></div>
            
                      <s:div styleClass="actionButtons" rendered="#{empty from}">
                           <s:button view="/EmployeeEdit.xhtml" id="create" propagation="none"
                                value="Create employee">
                                <f:param name="employeeId" />
                           </s:button>
                      </s:div>
                    </div>
                
                 </ui:define>
            
            </ui:composition>



            EmployeeList.page.xml




            <?xml version="1.0" encoding="UTF-8"?>
            <page xmlns="http://jboss.com/products/seam/pages"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.2.xsd">
            
               <param name="firstResult" value="#{employeeList.firstResult}"/>
               <param name="sort" value="#{employeeList.orderColumn}"/>
               <param name="dir" value="#{employeeList.orderDirection}"/>
               <param name="logic" value="#{employeeList.restrictionLogicOperator}"/>
            
               <param name="from"/>
               <param name="employeeNumber" value="#{employeeCriteria.bureau}"/>
               <param name="firstName" value="#{employeeExample.firstName}"/>
               <param name="lastName" value="#{employeeExample.lastName}"/>
               <param name="positionTitle" value="#{employeeExample.positionTitle}"/>
            
            </page>






            • 3. Re: Sorting Columns and Long Running Conversation
              v.lukoyanov

              I'm not sure, but it seems to me that page params doesn't set properly when you navigate from DmaCaseEdit.xhtml (faces request). When you remove cid you perform a non-faces request (page params processed in a different fashion).
              Please post sort.xhtml and scope of the involved components.


              ----------

              My seam website

              • 4. Re: Sorting Columns and Long Running Conversation
                jpalmer1026.jpalmer1026.mchsi.com

                I'm just using the default sort.xhtml, which is as follows:




                <ui:composition xmlns="http://www.w3.org/1999/xhtml"
                    xmlns:ui="http://java.sun.com/jsf/facelets"
                    xmlns:f="http://java.sun.com/jsf/core"
                    xmlns:h="http://java.sun.com/jsf/html"
                    xmlns:c="http://java.sun.com/jstl/core"
                    xmlns:s="http://jboss.com/products/seam/taglib">
                    <s:link styleClass="columnHeader" value="#{propertyLabel} #{entityList.orderColumn == propertyPath ? (entityList.orderDirection == 'desc' ? messages.down : messages.up) : ''}">
                        <f:param name="sort" value="#{propertyPath}"/>
                        <f:param name="dir" value="#{entityList.orderColumn == propertyPath and entityList.orderDirection == 'asc' ? 'desc' : 'asc'}"/>
                    </s:link>
                </ui:composition>



                It's odd. In the Seam in Action book, the author states that When you submit the search form, you don't see these parameters in the browser's location bar because they're passed through the UI component tree instead. I'm definitely seeing the parameters in the location bar though. My EmployeeList.page.xml file is as follows:




                <?xml version="1.0" encoding="UTF-8"?>
                <page xmlns="http://jboss.com/products/seam/pages"
                      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                      xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.2.xsd"
                      login-required="true">
                
                   <param name="firstResult" value="#{employeeList.firstResult}"/>
                   <param name="sort" value="#{employeeList.orderColumn}"/>
                   <param name="dir" value="#{employeeList.orderDirection}"/>
                   <param name="logic" value="#{employeeList.restrictionLogicOperator}"/>
                
                   <param name="from"/>
                   <param name="employeeNumber" value="#{employeeCriteria.bureau}"/>
                   <param name="firstName" value="#{employeeExample.firstName}"/>
                   <param name="lastName" value="#{employeeExample.lastName}"/>
                   <param name="positionTitle" value="#{employeeExample.positionTitle}"/>
                
                </page>
                



                Like I said in my previous post, the sorting on the EmployeesList page works fine when I access that page directly. It's only problematic when I access the page from the long running conversation that begins when I access the EmployeeList page from the DmaCaseEdit page.


                • 5. Re: Sorting Columns and Long Running Conversation
                  asookazian

                  s:link and s:button issue HTTP GET request, h:commandButton or h:link submit HTTP POST request.


                  with GET you'll see params post-pended to the URL, with POST you won't.

                  • 6. Re: Sorting Columns and Long Running Conversation
                    jpalmer1026.jpalmer1026.mchsi.com
                    Thanks. That explains why I'm seeing the parameters in the browser's location bar, since sort.xhtml is using an <s:link> to generate the column sorting.

                    The more serious question is why the sorting isn't working on the page when it's involved in a long running conversation. Can this be done?
                    • 7. Re: Sorting Columns and Long Running Conversation
                      kblief.kblief.gmail.com

                      I had this same issue.  I changed the scope from conversation to page to fix it.  I think it has to do with each conversation having it's own set of results.  Until the conversation is updated it just redisplays the same stale results.


                      The thing that drove me crazy was going to the next page and seeing that the sort then worked.


                      You could try adding


                      <begin-conversation join="true"/>



                      The conversation scope in the page.xml file is talked about here