Eu estou desenvolvendo telas de cadastro utilizando templates e me surgiu um problema. Dentro de um determinado cadastro eu faço uma chamada para a tela de pesquisa que acionará um ModalPanel. Quando eu clico no botão “pesquisar”, o ModalPanel simplesmente fecha. Olhando para a BB eu percebi que ele executou a Action, tanto que quando eu aciono novamente o ModalPanel, na dataTable aparecem os registros e eu consigo fazer a seleção.
Abaixo a parte do template_cadastro.xhtml que coloquei o ui:insert
(to dando uma cortada para facilitar o entendimento)
<html xmlns="http://www.w3.org/1999/xhtml"
... >
<ui:composition template="/WEB-INF/template_cadastro.xhtml">
<ui:define name="pesqModalBlock">
<a4j:include viewId="/webPages/pesquisaModal.xhtml"/>
... ou ...
<ui:include src="/webPages/pesquisaModal.xhtml"/>
[b]... EM AMBOS O RESULTADO FOI O MESMO ....[/b]
</ui:define>
</ui:composition>
</html>
Gostaria da ajuda dos amigos mais experientes. Eu estou achando que é problema de submit das telas que está fechando mas pesquisei bastante esse fim de semana e não achei o bug.
Por favor, façam perguntas e estarei online no forum para podermos achar esse erro.
Olá ibispo,
Recomendo não ficar duplicando seus posts. Você tem esse mesmo post em máis de uma categoria do Forum e isso não é legal.
Quanto a sua dúvida, provavelmente o seu Bean está redirecionado a página novamente e se por default o Model inicia fechado, dessa forma ele estará após a submissão do form.
O que você pode fazer é retornar null no seu método e fazer a renderização da página via AJAX.
Quando eu postei, eu nao sabia em qual classificacao eu poderia postar essa minha duvida, ai eu pensei que como postei desde manha sem resposta, eu decidi replica-la nessa categoria. Ficarei + esperto da prox vez.
Na Bean, abaixo o metodo Action acionado dentro da ModalPanel
Tenho certeza. Ja fiz um teste colocando um System.out.println() mostrando uma mensagem e ele entrou certinho no metodo VOID. Abaixo todo o meu Bean (cortei os getters e setters dos atributos para facilitar a visualizacao):
public class PesquisaMB implements Serializable {
private String nomeCadastro;
private List listaConsulta;
private String campoConsulta = "";
private String tipoConsulta = Utilitarios.PESQUISA_PESSOAS_NOME;
private String situacaoConsulta = Utilitarios.SITUACAO_ATIVO;
private boolean mostraSituacaoConsulta;
private ClienteDAO clienteDAO = new ClienteDAO();
private Clientes dadosClientes = new Clientes();
public void pesquisar() {
this.listaConsulta = (ArrayList)
this.clienteDAO.getBusca( this.tipoConsulta, this.campoConsulta);
}
... GETTERS e SETTERS....
}
Dentro do faces-config.xml eu estou mandando chamar a tela de pesquisa direto, isto é, sem aciona-la através do cadastro, só para testar e ai, funciona perfeito, isto é, eu clico, a bean executa a ação (metodo VOID) e a lista é preenchida SEM FECHAR O MODALPANEL.
Com isso c acha q devo estar bobeando em alguma coisa referente a maneira de chamar a tela de pesquisa?
Clico no link (pesquisar) para abrir o ModalPanel de pesquisa -------- OK
Dentro do ModalPanel, clico no botão “Pesquisar” ---------------- OK
O sistema mostra os registros no dataTable SEM FECHAR o ModalPanel ---------------- OK
Eu clico sob o registro desejado, ele fecha e coloca o registro selecionado na tela --------------- OK
Agora quando eu aciono a tela de pesquisa de DENTRO DO MENU.xhtml
Clico no link (pesquisar) para abrir o ModalPanel de pesquisa -------- OK
Dentro do ModalPanel, clico no botão “Pesquisar” ---------------- OK O sistema mostra os registros no dataTable SEM FECHAR o ModalPanel ---------------- *** NÃO *** (ele fecha)
…
Valeu pelas sugestões. Creio que o forum tá ai pra isso! Quanto mais compartilharmos conhecimento, melhor será para todos!
É o seguinte: Hj pela manhã, após uma noite de sono abri o projeto e pensei. Tenho uma tela que ao clicar em “pesquisar” abre um modalpanel. Poxa, se eu isolar esse ModalPanel no “form” principal chamado menu.xhtml?
Pois bem, separei o modalPanel da tela de pesquisa para o menu e TUDO FUNCIONOU CERTINHO! Inclusive colocando o a4j:status onde qualquer requisição que se faça, o sistema coloca “please wait” perfeito!
Só pra resumir:
Eu tenho o menu.xhtml e o pesquisa.xhtml, onde eu tenho um link para abrir o ModalPanel que estava dentro do pesquisa.xhtml.
Retirei o Modal de dentro do pesquisa.xhtml e coloquei ao final do </a4j:form> do menu.xhtml.
Com isso em qualquer lugar que desejar, posso aciona-lo sem problemas.
Qualquer dúvida a respeito, postem ai e eu terei o prazer de passar outras dicas!
Valeu pelas sugestões. Creio que o forum tá ai pra isso! Quanto mais compartilharmos conhecimento, melhor será para todos!
É o seguinte: Hj pela manhã, após uma noite de sono abri o projeto e pensei. Tenho uma tela que ao clicar em “pesquisar” abre um modalpanel. Poxa, se eu isolar esse ModalPanel no “form” principal chamado menu.xhtml?
Pois bem, separei o modalPanel da tela de pesquisa para o menu e TUDO FUNCIONOU CERTINHO! Inclusive colocando o a4j:status onde qualquer requisição que se faça, o sistema coloca “please wait” perfeito!
Só pra resumir:
Eu tenho o menu.xhtml e o pesquisa.xhtml, onde eu tenho um link para abrir o ModalPanel que estava dentro do pesquisa.xhtml.
Retirei o Modal de dentro do pesquisa.xhtml e coloquei ao final do </a4j:form> do menu.xhtml.
Com isso em qualquer lugar que desejar, posso aciona-lo sem problemas.
Qualquer dúvida a respeito, postem ai e eu terei o prazer de passar outras dicas!
Super valeu!
Bispo.[/quote]
Posta o código ai se você ainda o tiver. Estou com o mesmo problema.