对话框中的组件值未更新为辅助bean

时间:2013-09-24 03:47:22

标签: jsf primefaces dialog

我正在使用PrimeFaces 3.5,现在我想让用户在我的对话框中输入或选择一些数据(选择oneSelectMenu,或在inputTextarea中插入数据)。我还使用表格来安排用户界面。

但是我的对话框中用户的任何值都不会发送到我的支持bean。 我认为这是因为我在对话中使用它。

我试图在对话框外移动我的oneSelectMenu,它工作正常!

任何人都知道什么是错的?任何回复都将不胜感激。

我的支持bean是一种标准的getter和setter。 (我认为我的支持bean没什么问题,因为它在对话框之外工作正常)

这是我的xhtml代码:

<p:dialog id="dlgNew" header="New Action Item" widgetVar="dlg1" modal="true" resizable="false" 
width="40%" height="55%" appendToBody="true">
<table>
    <tr>
        <td><p:outputLabel value="Detail"/></td>
        <td>:</td>
        <td><p:inputTextarea rows="5" cols="40" value="#{aiBean.detail}"/></td>
    </tr>
    <tr>
        <td><p:outputLabel value="Status"/></td>
        <td>:</td>
        <td><p:selectOneMenu effect="fade" value="#{aiBean.status}">    
                <f:selectItem itemLabel="Not Started" itemValue="Not Started" />  
                <f:selectItem itemLabel="On Progress" itemValue="On Progress" /> 
                <f:selectItem itemLabel="Finished" itemValue="Finished" />               
            </p:selectOneMenu>
        </td>
    </tr>
    <tr>
        <td></td><td></td>
        <td>
        <p:commandButton value="Add" action="#{aiBean.insertAi}"/>
        <p:commandButton value="Cancel" onclick="dlg1.hide()"/></td>
    </tr>
</table>

1 个答案:

答案 0 :(得分:3)

p:dialog移出h:form(如果有的话) 将h:form放入p:dialog

<p:dialog id="dlgNew" header="New Action Item" widgetVar="dlg1" modal="true" resizable="false" 
width="40%" height="55%" appendToBody="true">
   <h:form>
      ...
      ...
   </h:form>
</p:dialog>