Как отмечается в комментариях, в коде XHTML есть несколько проблем.
1) Используйте <h:form>
вместо <form>
2) Компонент p: steps только для чтениядефолт.Установите readonly="false"
, чтобы иметь элементы интерактивного меню.В этом режиме его нужно поместить где-то внутри h:form
до - я получаю javax.faces.FacesException: MenuItem must be inside a form element
else.
3) Ваши элементы menu обновляют только компонент p:steps
.Ваши другие панели никогда не будут отображаться таким образом, поскольку они не обновляются.Вы должны обновить элемент, содержащий их тоже.Не знаю, что такое updateEntirePage
, особенно когда вызывается дважды.
4) Имена бинов, такие как переменные Java, обычно начинаются с символа нижнего регистра.
Попробуйте это так:
<h:form>
<p:steps id="testSteps" readonly="false">
<p:menuitem value="Personal" update="@form" actionListener="#{beanTest.shown2()}"/>
<p:menuitem value="Seat Selection" update="@form"/>
</p:steps>
<p:panel rendered="#{neanTest.showfield1}">
<p:outputLabel value="FORM 1"/>
</p:panel>
<p:panel rendered="#{beanTest.showfield2}">
<p:outputLabel value="FORM 2" />
</p:panel>
</h:form>
А в вашем бобе:
public void shown2(){
showfield1 = false;
showfield2 = true;
}