2010-11-24 15 views
1

Est-il possible dans une page Seam/RichFaces de désactiver AJAX afin que les demandes soient envoyées via une requête client-serveur régulière, où la page entière est actualisée au lieu d'éléments individuels? J'utilise un a4j:outputPanel et un a4j:commandButton et je n'ai pas besoin d'utiliser AJAX dans certains cas via un bouton à bascule.Est-il possible de désactiver AJAX dans RichFaces?

Voici un extrait de code à partir de la page. Merci.

<a4j:outputPanel id="output" rendered="#{not empty overtime.overtimeItems}" 
    ajaxRendered="true"> 
    <c:forEach items="#{overtime.overtimeItems}" var="oc"> 
    <h:outputLabel value="#{oc.dateLabel}" 
     style="font-weight:#{(oc.id == 1) ? 'bold' : 'normal'}" 
     for="#{oc.overtimeDateId}" /> 
    <rich:calendar value="#{oc.overtimeDate}" 
     requiredMessage="Date 1 is required." 
     id="#{oc.overtimeDateId}" datePattern="MM-dd-yyyy" 
     required="#{oc.id == 1 ? true : false}" firstWeekDay="0"> 
     <a4j:support event="onchanged" 
     reRender="#{oc.overtimeHoursId}, #{oc.overtimeHoursOutputId}" 
     ajaxSingle="true"/> 
    </rich:calendar> 
    ...... 

    </c:foreach> 
</a4j:outputPanel> 

<a4j:commandButton action="#{utilities.sendEmail('/pages/overtime/mail.xhtml')}" 
    type="submit" value="Submit" 
    reRender="status, valid1, valid2" eventsQueue="foo" status="status" 
    onclick="this.disabled=false" id="btnSubmit" 
    oncomplete="#{facesContext.maximumSeverity == null ? 'Richfaces.hideModalPanel(\'mpErrors\');' : 'Richfaces.showModalPanel(\'mpErrors\'); this.disabled=false'}"/> 
+0

J'ai créé une version de la page sans composants a4j. Impossible de trouver un moyen de le faire autrement. – Alex

Répondre

1

Seule façon de le faire est d'envelopper ces composants ajax dans panelgroups et utiliser la propriété rendu. Vous devrez essentiellement fournir un rendu conditionnel et fournir des alternatives non-ajax des composants ajax.

Vous auriez quelque chose comme:

<h:panelGroup rendered="#{someBean.ajaxEnabled}"> 
    <a4j:commandButton ..... /> 
</h:panelGroup> 

<h:panelGroup rendered="#{!someBean.ajaxEnabled}"> 
    <h:commandButton ..... /> 
</h:panelGroup>