Ao confirmar dialog não envia informacao para bean - JSF - Resolvido

5 respostas
E

Boa tarde, Criei uma tela de aprovação de cadastros, e juntamente dois botões, um para aprovar e outro para rejeitar, quando clico em rejeitar abro um dialog. Neste Dialog acrescentei um campo para que o usuário descreva o motivo da rejeição, mas ele não esta atribuindo o valor digitado ao campo motivoRejeição do bean, tentei de varias formas pesquisas pela internet, mas não encontrei algo que resolva:

<p:inputTextarea value="#{requisicaoUC.motivoRejeicao}" required="true" rows="6" cols="42" autoResize="false" requiredMessage="Digite o motivo da rejeição!"/>

Gostaria de ver se alguém consegue me auxiliar neste problema. Debugando ele, vejo que ele acessa o get para obter o valor ao abrir o Dialog, mas não seta o valor ao clicar no botão de confirmar rejeição.

<p:commandButton immediate="false" action="#{requisicaoUC.rejeitar}" value="Sim" />

5 Respostas

Mike

Olá @ealbino

Posta o código todo da página e do método rejeitar para eu poder te ajudar :+1:

Abraços

E

Oi Mike, obrigado pela atenção,
Consegui, após vários testes.
o dialog ficou assim:

<p:dialog message="Tem certeza que deseja rejeitar?"	                         
                         widgetVar="cdRejeitarRegistro" 
                         showEffect="fade" hideEffect="fade" 
                         header="Confirmar" >
                <h:form>
                <p:outputPanel id="confirmCancelar" style="text-align:center;">
        			<p:messages id="messageLogin"/>
					<p:panelGrid style="padding:0px" styleClass="semBorda">
						<p:row><p:column> 
							<p:inputTextarea value="#{requisicaoUC.motivoRejeicao}" required="true" rows="6" cols="42" autoResize="false" requiredMessage="Digite o motivo da rejeição!"/>
						</p:column>
						</p:row>
						<p:row><p:column>
	 						<p:commandButton  action="#{requisicaoUC.rejeitar}" value="Sim" />
	                    	<p:commandButton value="Não" onclick="PF('cdRejeitarRegistro').hide()" />
	                    </p:column>
	                    </p:row>
		           </p:panelGrid>
		       </p:outputPanel>
		       </h:form>
        </p:dialog>

Surgiu uma outra dúvida, já notei anterior que o commandButton do primefaces somente chama após eu dar o segundo clique nele, tem alguma configuração que preciso mudar para que ao clicar uma vez ele já acione a função?

Mike

Pode ser isso:

Caso o seu dialog esteja dentro de um form, tire-o de dentro, pois senão o seu botão fica dentro de dois forms.

Pelo que estou vendo, o seu método rejeitar não precisa de retorno e caso realmente não precise, deixe-o como void e mude de action para ActionListener.

E

Mike, obrigado pelo retorno, vou verificar para retirar de dentro do form principal, no caso do p:commandButton, ao acionar e der tudo certo, ele redireciona para outra pagina com a lista de itens que ainda estão para aprovação.

Mike

Ah ok!

Vi que você colocou como Resolvido o tópico, deu certo a minha dica para tirar de dentro do outro form ou conseguiu resolver de outra forma?

Abraços

Criado 27 de setembro de 2019
Ultima resposta 30 de set. de 2019
Respostas 5
Participantes 2