为什么菜单栏不能与ui一起使用:包含在Primefaces中

时间:2012-03-04 21:11:16

标签: templates primefaces menubar

<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 :(得分:0)

我已经在我的环境中检查了你的问题,并且不得不说它适用于我,虽然我做了一些小改动。

首先,我在/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>

一切都很好 也许您注意到<p:menuitem>标记上设置了 ajax =“false”属性。默认情况下,此值设置为true,并停止JSF实现以执行其默认生命周期。通过将其设置为false,您将获得常规的JSF行为。

希望这有帮助,玩得开心!