Можно ли отключить AJAX в RichFaces?

Можно ли на странице Seam/RichFaces отключить AJAX, чтобы запросы отправлялись через обычный запрос сервер-клиент, где обновляется вся страница, а не отдельные элементы? Я использую a4j:outputPanel и a4j:commandButton, и мне нужно, чтобы они не использовали AJAX в некоторых случаях с помощью переключателя.

Вот фрагмент кода со страницы. Спасибо.

<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'}"/>

person Alex    schedule 24.11.2010    source источник
comment
Я создал версию страницы без компонентов a4j. Другого способа не нашел.   -  person Alex    schedule 25.11.2010


Ответы (1)


Единственный способ сделать это — обернуть эти компоненты ajax в группы панелей и использовать свойство rendered. В основном вам нужно будет обеспечить условный рендеринг и предоставить не-ajax альтернативы компонентам ajax.

Таким образом, у вас будет что-то вроде:

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

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