2013-03-28 7 views
0

У меня есть p: мастер внутри диалога. Когда я нажимаю на следующую кнопку, ничего не происходит. Я даже поставил h: сообщения, чтобы поймать любые проблемы с проверкой. Но ничего не появляется. Вот мой код:Мастер не переходит к следующему шагу

<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:cc="http://java.sun.com/jsf/composite" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:p="http://primefaces.org/ui"> 
    <cc:interface> 
     <cc:attribute name="actionNewComplete" required="false"/> 
     <cc:attribute name="update" required="false"/> 
    </cc:interface> 
    <cc:implementation> 
     <h:form prependId="false" id="formCreateOffre"> 
      <h:messages showDetail="true"/> 
      <p:wizard id="wizardOffre" widgetVar="widgetWizardOffre" showNavBar="false" flowListener="#{offreController.handleFlow}"> 
       <p:tab id="tabOffre" title="Offre"> 
        <p:panelGrid styleClass="ui-net-table"> 
         <p:row> 
          <p:column> 
           <p:outputLabel value="#{bundle.CreateOffreLabel_participant}" for="participant" /> 
           <p:inputText styleClass="text" style="width: 50px;" id="participant" value="#{offreController.selected.participant}" title="#{bundle.CreateOffreTitle_participant}" /> 
          </p:column> 
         </p:row> 

         <p:row> 
          <p:column> 
           <p:outputLabel value="#{bundle.CreateOffreLabel_rendezvous}" for="rendezvous" /> 
           <p:calendar styleClass="text" id="rendezvous" value="#{offreController.selected.rendezvous}" disabled="#{offreController.selected.realisation eq null}" title="#{bundle.CreateOffreTitle_rendezvous}"> 
            <p:ajax event="dateSelect" update="delais"/> 
           </p:calendar> 
          </p:column> 
         </p:row>            

        </p:panelGrid> 
       </p:tab> 
       <p:tab id="tabOffreClient" title="Client"> 
        clients 
       </p:tab> 
       <p:tab id="tabOffreActivite" title="Activité"> 
        activités 
       </p:tab> 
       <p:tab id="tabOffreService" title="Service"> 
        services 
       </p:tab> 
      </p:wizard> 
      <p:commandButton value="Précédent" onclick="widgetWizardOffre.back();" icon="ui-icon-seek-prev"/> 
      <p:commandButton value="Suivant" onclick="widgetWizardOffre.next();" icon="ui-icon-seek-next" iconPos="right"/> 
     </h:form> 
    </cc:implementation> 
</html> 

Вот код бобов.

@ManagedBean(name = "offreController") 
@SessionScoped 
public class OffreController extends AbstractController<Offre> { 

    @ManagedProperty(value = "#{navigationController}") 
    private NavigationController navigation; 
    @EJB 
    private app.tfe.netescape.business.OffreFacade ejbFacade; 

    public OffreController() { 
    } 

    public String handleFlow(FlowEvent event) { 
     return event.getNewStep(); 
    } 

Метод flowListener вызывается и возвращает следующий шаг, но ничего не происходит.

ответ

-1

Вы уже скрываете навигационную панель (следующие & кнопки со стрелками), как может работать панель навигации? Удалите showNavBar="false", это правда по умолчанию.

1

Удостоверьтесь, что у вас есть геттер и сеттер для каждого свойства bean, которое вы указали в своем коде. PrimeFaces с ошибкой выйдет на шаге мастера точно таким образом, если он не сможет найти как getter, так и setter - даже для свойств, которые вы только читаете.

Приложение: также геттеры и сеттеры должны только сделать набор и установить локальное значение. PrimeFaces не справляется с другими геттерами и сеттерами (я не могу объяснить, почему это не работает, но я, конечно же, это наблюдал). Если у вас есть дополнительная логика, она должна обрабатываться в ваших слушателях.

0

Какую версию используемых вами интерфейсов вы использовали?

Если это версия 5.1 изменить событие OnClick:

OnClick = "widgetWizardOffre.next();"

по --->

OnClick = "ПФ ('widgetWizardOffre') следующий();".

и использовать их для события назад: onclick = "PF ('widgetWizardOffre'). Back();"

Смежные вопросы