<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。
干杯, 萨米
答案 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行为。
希望这有帮助,玩得开心!