Можно ли отключить AJAX в RichFaces? - PullRequest
1 голос
/ 24 ноября 2010

Возможно ли на странице 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'}"/>

1 Ответ

1 голос
/ 30 ноября 2010

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

То есть у вас будет что-то вроде:

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

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