Почему menubar не работает с пользовательским интерфейсом: включить в Primefaces - PullRequest
1 голос
/ 05 марта 2012
<ui:composition>
        <h:form>
           <p:menubar>
                    <p:menuitem id="signup" value="signup" label="Sign Up" action="goSignUp"/>
           </p:menubar>

            <h:commandButton  id ="signup2" value="signup2" label="Sign Up" action="goSignUp" />

        </h:form>
 </ui:composition>

Почему верхний не работает, а обычная командная кнопка работает? Я включаю menuBar.xhtml на свою страницу, и после этого меню больше не работают. Если я внедряю их прямо на исходную страницу, не включая их, они работают нормально, почему? Primefaces версии 3.1 и JSF2.0 + Glassfish 3.1.

Ура, Сами

1 Ответ

0 голосов
/ 13 марта 2012

Я проверил вашу проблему в моей среде и должен сказать, что она работает для меня, хотя я внес некоторые незначительные изменения.

Сначала я создал страницу композиции в моей папке /WEB-INF/template/:

<body>
  <ui:composition>
    <p:menubar>
      <p:menuitem id="signup" value="signup" label="Sign Up" action="goSignUp" ajax="false"/>
    </p:menubar>

    <h:commandButton id="signup2" value="signup2" label="Sign Up" action="goSignUp" />
  </ui:composition>
</body>

И после этого я вставил его в мой .xhtml файл:

<f:view>
  <h:body>
    <h:form>
        <ui:include src="/META-INF/template/navbar.xhtml" />
    </h:form>
  </h:body>
</f:view>

Все отлично работает.
Возможно, вы заметили атрибут ajax = "false" , установленный для тега <p:menuitem>. Это значение имеет значение true по умолчанию и останавливает реализацию JSF для выполнения жизненного цикла по умолчанию. Установив значение false, вы получите обычное поведение JSF.

Надеюсь, это помогло, повеселись!

...