在菜单中设置值并在对话框中显示

Setting value in Menu and showing in Dialog

我正在尝试在 p:selectOneMenu 中设置一个对象并在 p:dialog 中显示该对象。

菜单:

<p:form id="form1">
<p:selectOneMenu value="#{bean.entity}" immediate="true">
    <f:selectItems value="#{bean.entities}" var="ent" itemLabel="#{ent.name}" itemValue="#{ent}" />
</p:selectOneMenu>
<p:commandButton value="Submit" oncomplete="PF('dlg').show();" update=":form2" />
</p:form>

对话:

<p:dialog header="Title" widgetVar="dlg" modal="true">
    <p:form id="form2">
        <p:outputLabel id="component" value="#{bean.entity.name}" />                        
    </p:form>
</p:dialog> 

但不幸的是对话框仍然是空的,所以点击按钮后还没有设置实体。我没有收到任何错误。


当我直接在 bean 中设置实体时,它出现在对话框中。

Class:豆子

// getter & setter

entity = entities.get(1);

由于您在 selectOneMenu 中使用自定义 class 而不是简单 String,您需要自定义转换器。

查看此 tutorial,其中解释了如何实现该目标。