Java p:对话框中的inputText将空值返回给bean

Java p:对话框中的inputText将空值返回给bean,java,primefaces,Java,Primefaces,我试图从p:inputText中获取一个值,它位于p:dialog中,但这会将null返回给我的bean。 inputText MotivacanceLamento需要在对话框中填入我的inputText MotivacanceLamento对话框的内容。 另一个是ok,比如status、protocoloCancelamento和dataCancelamento。 有人能帮我吗 <h:form id="form"> <p:toolbar>

我试图从p:inputText中获取一个值,它位于p:dialog中,但这会将null返回给我的bean。 inputText MotivacanceLamento需要在对话框中填入我的inputText MotivacanceLamento对话框的内容。 另一个是ok,比如status、protocoloCancelamento和dataCancelamento。 有人能帮我吗

<h:form id="form">
            <p:toolbar>
                <f:facet name="left">
                    <p:growl id="messages" showDetail="true"/>                          
                    <p:dialog header="Cancelar Nota" widgetVar="cancelamentoDialog" focus="motivoCancelamentoDialog">
                        <h:panelGrid columns="2" cellpadding="5">
                            <h:outputLabel for="motivoCancelamentoDialog" value="Motivo Cancelamento:" />
                            <p:inputText id="motivoCancelamentoDialog" value="#{notaProdutoBean.notaProduto.motivoCancelamento}" />
                            <p:commandButton value="Cancelar" actionListener="#{notaProdutoBean.cancelarNota()}" update="status motivoCancelamento protocoloCancelamento dataCancelamento messages form"/>
                        </h:panelGrid>   
                    </p:dialog>
                    <p:confirmDialog global="true" showEffect="fade" hideEffect="fade">
                        <p:commandButton value="Sim" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
                        <p:commandButton value="Não" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
                    </p:confirmDialog>
            </p:toolbar>                
            <p:fieldset id='panelNotaFiscal' legend="NotaFiscal" >
                <p:panelGrid columns="6" columnClasses="centered">
                    <p:outputLabel for='status' value='Status'/>
                    <p:inputText id="status" value="#{notaProdutoBean.notaProduto.status}" required="true" requiredMessage="O campo Status é obrigatório">              
                        <p:message for="status"/>
                    </p:inputText>
                    <p:outputLabel for="motivoCancelamento" value="Motivo Cancelamento"/>
                    <p:inputText id="motivoCancelamento" size="25" value="#{notaProdutoBean.notaProduto.motivoCancelamento}">
                        <p:message for="motivoCancelamento"/>
                    </p:inputText>
                    <p:outputLabel for="protocoloCancelamento" value="Protocolo Cancelamento"/>
                    <p:inputText id="protocoloCancelamento" size="15" value="#{notaProdutoBean.notaProduto.protocoloCancelamento}">
                        <p:message for="protocoloCancelamento"/>
                    </p:inputText>
                    <p:outputLabel for="dataCancelamento" value="Data Cancelamento"/>
                    <p:calendar id="dataCancelamento" value="#{notaProdutoBean.notaProduto.dataCancelamento}" pattern="dd/MM/yyyy HH:mm:ss">
                        <p:message for='dataCancelamento'/>
                    </p:calendar>                       
                </p:panelGrid>
            </p:fieldset>

您的输入标记实际上是空标记

尝试使用下面的方法,看看是否有效。

abc

同一字段有两个输入,格式相同:

<p:inputText id="motivoCancelamentoDialog" value="#{notaProdutoBean.notaProduto.motivoCancelamento}" />

<p:inputText id="motivoCancelamento" size="25" value="#{notaProdutoBean.notaProduto.motivoCancelamento}">
                        <p:message for="motivoCancelamento"/>
                    </p:inputText>

您应该将对话框放在一个单独的表单中,这样它就不会发布第二个输入

您还可以在“取消”按钮中指定要处理的元素


感谢您的帮助,但很抱歉,这个答案完全错了。
<p:inputText id="motivoCancelamentoDialog" value="#{notaProdutoBean.notaProduto.motivoCancelamento}" />

<p:inputText id="motivoCancelamento" size="25" value="#{notaProdutoBean.notaProduto.motivoCancelamento}">
                        <p:message for="motivoCancelamento"/>
                    </p:inputText>
<p:inputText id="motivoCancelamentoDialog" value="# notaProdutoBean.notaProduto.motivoCancelamento}" />
<p:commandButton value="Cancelar" actionListener="#{notaProdutoBean.cancelarNota()}" update="status motivoCancelamento protocoloCancelamento dataCancelamento messages form" process="@this, motivoCancelamentoDialog"/>