8 Replies Latest reply on Apr 6, 2011 7:06 PM by andregalvao

    <a4j:poll> Render whole page problem

    sandrokg

      I have <a4j:poll> and <rich:extendedDataTable> on xhtml page. My problem is that <a4j:poll> renders whole page, and <rich:extendedDataTable> calls data model on <a4j:poll> interval.

      Does anybody knows issue for my problem?

       

      I also tried to put <a4j:poll> into <a4j:region> and it doesn't work.

       

       

      <a4j:region id="region" renderRegionOnly="true" >
          <h:form >
              <a4j:poll id="poll" interval="1000" enabled="true" 
                  reRender="grid" limitToList="true" ajaxSingle="true" />
             
      </h:form>
      <h:form >
          <h:panelGrid styleClass="alert-grid" columns="1" id="grid"  width="100%"  >
              <h:outputText value="#{applicationAlertsMB.datum}" />
              <a4j:commandLink styleClass="alert-link" id="link"
                  oncomplete="#{rich:component('allMessagesPanel')}.show()"
                  rendered="#{applicationAlertsMB.alert}"
                  action="#{applicationAlertsMB.turnOfAlert}"
                  reRender="allMessagesPanel">
                  <h:graphicImage styleClass="alert-image"
                      value="/images/icons/transparent/transparent-image-32x32.png" />
                  <h:outputText id="serverDate" styleClass="alert-text"
                      value="#{messages.global_alert_message}" />
              </a4j:commandLink>
          </h:panelGrid>
      </h:form>
      </a4j:region>

        • 1. Re: <a4j:poll> Render whole page problem
          vineyard

          Hi Sandro,

          I too have the same sisue.

          Please let us know if you fix this issue.

          • 2. Re: <a4j:poll> Render whole page problem
            aapkakk

            Hi Sandro

            Try This

             

                <h:form >
                    <a4j:poll id="poll" interval="1000" enabled="true" 
                        reRender="grid" limitToList="true" ajaxSingle="true" />
                   
            </h:form>

             

            <a4j:region id="region" renderRegionOnly="true" >

            <h:form >
                <h:panelGrid styleClass="alert-grid" columns="1" id="grid"  width="100%"  >
                    <h:outputText value="#{applicationAlertsMB.datum}" />
                    <a4j:commandLink styleClass="alert-link" id="link"
                        oncomplete="#{rich:component('allMessagesPanel')}.show()"
                        rendered="#{applicationAlertsMB.alert}"
                        action="#{applicationAlertsMB.turnOfAlert}"
                        reRender="allMessagesPanel">
                        <h:graphicImage styleClass="alert-image"
                            value="/images/icons/transparent/transparent-image-32x32.png" />
                        <h:outputText id="serverDate" styleClass="alert-text"
                            value="#{messages.global_alert_message}" />
                    </a4j:commandLink>
                </h:panelGrid>
            </h:form>
            </a4j:region>

             

             

            or you remove the region if this is not needed. Because a region

            limits the part of the component tree to be processed on the server side when ajax request comes. Processing means invocation during Decode, Validation and Model Update phase. Most common reasons to use a region are:

            • avoiding the aborting of the JSF lifecycle processing during the validation of other form input unnecessary for given ajax request;
            • defining the different strategies when events will be delivered (immediate="true/false")
            • showing an individual indicator of an ajax status
            • increasing the performance of the rendering processing (selfRendered="true/false", renderRegionOnly="true/false")
            • 3. Re: <a4j:poll> Render whole page problem
              sandrokg

              I tried it but it doesn't work.

              I made new project and made only one page with poll and extendedDataTable, and there poll works fine, it doesn't render whole page, but if I copy that page into my original project it renders whole page. I checked libraries, both project have the same libraries.

               

              What could be the problem?

              • 4. Re: <a4j:poll> Render whole page problem
                vineyard

                Do you use any PhaseListener?

                 

                Do you handle GET requests?

                 

                if you have the code written in PhaseListener to handle GET requests, change the name of the jsp/ xhtml to some other name

                and the issue should be fixed.

                 

                if not fixed,

                please tell me

                1. are you using JSP/ XHTML

                2. name of the XHTML/ JSP

                3. are you handling any GET requests?

                 

                I have the same issue lastweek but solved

                • 5. Re: <a4j:poll> Render whole page problem
                  sandrokg

                  Hi,

                       I don't use PhaseListener, and I don't handle GET requests?

                  1. I am using XHTML.

                  2. whitch name of xhtml?

                  3. I am not handling any GET requests?

                   

                  Do you think the problem is in web.xml, could there be a problem.

                   

                  This is my web.xml

                   

                  <?xml version="1.0" encoding="UTF-8"?>
                  <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
                    <display-name>GMS</display-name>
                    <description>GMS Aplication</description>
                    <context-param>
                      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
                      <param-value>.xhtml</param-value>
                    </context-param>
                    <context-param>
                      <param-name>javax.faces.FACELETS_REFRESH_PERIOD</param-name>
                      <param-value>2</param-value>
                    </context-param>
                    <context-param>
                      <param-name>facelets.DEVELOPMENT</param-name>
                      <param-value>true</param-value>
                    </context-param>
                    <context-param>
                      <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
                      <param-value>server</param-value>
                    </context-param>
                    <context-param>
                      <param-name>com.sun.faces.validateXml</param-name>
                      <param-value>true</param-value>
                    </context-param>
                    <context-param>
                      <param-name>com.sun.faces.verifyObjects</param-name>
                      <param-value>false</param-value>
                    </context-param>
                    <context-param>
                      <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
                      <param-value>com.sun.facelets.FaceletViewHandler</param-value>
                    </context-param>
                    <context-param>
                      <param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name>
                      <param-value>true</param-value>
                    </context-param>
                    <context-param>
                      <param-name>org.ajax4jsf.COMPRESS_STYLE</param-name>
                      <param-value>true</param-value>
                    </context-param>
                    <context-param>
                      <param-name>org.richfaces.CONTROL_SKINNING</param-name>
                      <param-value>enable</param-value>
                    </context-param>
                    <context-param>
                      <param-name>org.richfaces.LoadStyleStrategy</param-name>
                      <param-value>ALL</param-value>
                    </context-param>
                    <context-param>
                      <param-name>org.richfaces.LoadScriptStrategy</param-name>
                      <param-value>ALL</param-value>
                    </context-param>
                    <context-param>
                      <param-name>org.richfaces.SKIN</param-name>
                      <param-value>ruby</param-value>
                    </context-param>
                    <context-param>
                      <param-name>javax.faces.DISABLE_FACELET_JSF_VIEWHANDLER</param-name>
                      <param-value>true</param-value>
                    </context-param>
                    <context-param>
                      <param-name>org.ajax4jsf.handleViewExpiredOnClient</param-name>
                      <param-value>true</param-value>
                    </context-param>
                    <context-param>
                      <param-name>com.sun.faces.enableRestoreView11Compatibility</param-name>
                      <param-value>true</param-value>
                    </context-param>
                    <servlet>
                      <servlet-name>Faces Servlet</servlet-name>
                      <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
                      <load-on-startup>1</load-on-startup>
                    </servlet>
                    <servlet-mapping>
                      <servlet-name>Faces Servlet</servlet-name>
                      <url-pattern>*.xhtml</url-pattern>
                    </servlet-mapping>
                    <filter>
                      <display-name>RichFaces Filter</display-name>
                      <filter-name>richfaces</filter-name>
                      <filter-class>org.ajax4jsf.Filter</filter-class>
                    </filter>
                    <filter-mapping>
                      <filter-name>richfaces</filter-name>
                      <servlet-name>Faces Servlet</servlet-name>
                      <dispatcher>REQUEST</dispatcher>
                      <dispatcher>FORWARD</dispatcher>
                      <dispatcher>INCLUDE</dispatcher>
                    </filter-mapping>
                    <welcome-file-list>
                      <welcome-file>login.xhtml</welcome-file>
                    </welcome-file-list>
                    <servlet>
                      <description></description>
                      <display-name>StartUp</display-name>
                      <servlet-name>StartUp</servlet-name>
                      <servlet-class>com.comtrade.itss.ccms.web.servlet.StartUp</servlet-class>
                      <load-on-startup>1</load-on-startup>
                    </servlet>
                    <servlet-mapping>
                      <servlet-name>StartUp</servlet-name>
                      <url-pattern>/StartUp</url-pattern>
                    </servlet-mapping>
                  </web-app>

                   

                   

                  How did you solve your issue?

                  • 6. Re: <a4j:poll> Render whole page problem
                    sandrokg

                    I solved my problem by removing <c:if> tags from all pages.

                    • 7. Re: <a4j:poll> Render whole page problem
                      sandrokg

                      Problem still exists. If anybody knows how to solve this problem, please write solution.

                       

                      Removing c:if tag solves problem if there is no dataTable within page.

                      Adding dataTable in page, problem apear again.

                      • 8. <a4j:poll> Render whole page problem
                        andregalvao

                        Hi

                         

                        I also have the same problem. But in my case the page sometimes refresh just an output text (correct) and sometimes refresh the whole page (wrong). Someone pls could help me?