p:步骤示例不起作用



我正在尝试使用STEPS组件-Primefaces。但在文档中,教程非常糟糕。

有人能写一个使用具有属性渲染的步骤的例子吗?或者类似的东西,我如何使用steps组件显示和隐藏面板。

我试过这样做,但不起作用

我的xhtml

<p:steps id="testSteps">
<p:menuitem value="Personal" update="testSteps" actionListener="#{BeanTest.shown2()}"/>
<p:menuitem value="Seat Selection" update="testSteps"/>
</p:steps>
<form id="formShowField1" >
<p:panel rendered="#{BeanTest.showfield1}">
<p:outputLabel value="FORM 1"/>
</p:panel>
</form>
<form id="formShowField2">
<p:panel rendered="#{BeanTest.showfield2}">
<p:outputLabel value="FORM 2" />
</p:panel>
</form>

我的豆

public void shown1(){
showfield1 = true;
updateEntirePage("formShowField1");
}
public void shown2(){
showfield1 = false;
updateEntirePage("formShowField1");
showfield2 = true;
updateEntirePage("formShowField2");        
}

如注释所述,XHTML代码存在多个问题。

1( 使用<h:form>而不是<form>

2( 默认情况下,p:steps组件是只读的。设置readonly="false"以便具有交互式菜单项。在这种模式下,它需要被放置在h:form内部的某个位置,以-我得到一个javax.faces.FacesException: MenuItem must be inside a form element

3( 您的菜单项仅更新p:steps组件。你的其他面板永远不会以这种方式显示,因为它们没有更新。您也应该更新包含它们的元素。但不知道updateEntirePage是什么,尤其是当调用两次时。

4( 像Java变量这样的Bean名称通常以小写字符开头。

这样试试:

<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;
}

相关内容

  • 没有找到相关文章

最新更新