Problema com JSF 1.1
Olá Pessoa to com um problema numa aplicação aqui no lugar onde trabalho que usa JSF 1.1 ,tomahawk 1.1 e hibernate.
o problema é na minha pagina onde possui um componente que gera uma arvore com o nome das unidades onde trabalho (segue o codigo abaixo) funciona corretamente no 1º submit feito por um commandButton e na 2º vez o submit é feito porem a aplicação não executa o metodo informado no commandButton e na 3º vez volta a funciona corretamente.
Também eu usei um phaseListener e o configurei para mostrar cada fase do ciclo de vida do JSF que é executado para ter melhor ideia do erro e notei que na 1º vez e executado todas as fases e na 2º vez parece ter ocorrido um erro de RESTORE_VIEW que é a 1º fase encaminhado diretamente para a ultima fase de RENDER_RESPONSE. <t:tree2 value="#{act.arvoreDeUnidades}" id="unidadesNames" showRootNode="false" var="node" varNodeToggler="t"> <f:facet name="raiz"> <h:outputText value="#{node.description}" styleClass="formatTexto"/> <f:facet name="expand"> </f:facet> <f:facet name="collapse"> </f:facet> </f:facet> <f:facet name="unidade"> <h:panelGroup> <h:outputLink value="#" onclick="preencheCampo('#{node.description}');"> <h:outputText value="#{node.description}"/> </h:outputLink> <f:facet name="expand"> <t:graphicImage value="/Web/GRH/imagens/unidade.bmp" rendered="#{t.nodeExpanded}" border="0" /> </f:facet> <f:facet name="collapse"> <t:graphicImage value="/Web/GRH/imagens/unidade.bmp" rendered="#{!t.nodeExpanded}" border="0" /> </f:facet> </h:panelGroup> </f:facet> </t:tree2> <h:outputText value="Unidade Selecionada:#{act.siglaUnidadeSelecionada}" styleClass="formatTexto"/> <h:inputText id="unidadeSelecionada" value="#{act.siglaUnidadeSelecionada}" styleClass="campoTexto" /> <h:commandButton styleClass="botoes" value="ok" id="pesquisaUnidade" onclick="teste();" action="#{act.buscarMembrosDaUnidade}"/> segue o javascript function preencheCampo(unidadeSigla){ document.getElementById('exercerFuncaoForm:unidadeSelecionada').value=unidadeSigla; } alguém ja passou por isso ou algo parecido??????
caso tenha ficado duvida eu explico melhor sem problemas. att robson
Também eu usei um phaseListener e o configurei para mostrar cada fase do ciclo de vida do JSF que é executado para ter melhor ideia do erro e notei que na 1º vez e executado todas as fases e na 2º vez parece ter ocorrido um erro de RESTORE_VIEW que é a 1º fase encaminhado diretamente para a ultima fase de RENDER_RESPONSE. <t:tree2 value="#{act.arvoreDeUnidades}" id="unidadesNames" showRootNode="false" var="node" varNodeToggler="t"> <f:facet name="raiz"> <h:outputText value="#{node.description}" styleClass="formatTexto"/> <f:facet name="expand"> </f:facet> <f:facet name="collapse"> </f:facet> </f:facet> <f:facet name="unidade"> <h:panelGroup> <h:outputLink value="#" onclick="preencheCampo('#{node.description}');"> <h:outputText value="#{node.description}"/> </h:outputLink> <f:facet name="expand"> <t:graphicImage value="/Web/GRH/imagens/unidade.bmp" rendered="#{t.nodeExpanded}" border="0" /> </f:facet> <f:facet name="collapse"> <t:graphicImage value="/Web/GRH/imagens/unidade.bmp" rendered="#{!t.nodeExpanded}" border="0" /> </f:facet> </h:panelGroup> </f:facet> </t:tree2> <h:outputText value="Unidade Selecionada:#{act.siglaUnidadeSelecionada}" styleClass="formatTexto"/> <h:inputText id="unidadeSelecionada" value="#{act.siglaUnidadeSelecionada}" styleClass="campoTexto" /> <h:commandButton styleClass="botoes" value="ok" id="pesquisaUnidade" onclick="teste();" action="#{act.buscarMembrosDaUnidade}"/> segue o javascript function preencheCampo(unidadeSigla){ document.getElementById('exercerFuncaoForm:unidadeSelecionada').value=unidadeSigla; } alguém ja passou por isso ou algo parecido??????
caso tenha ficado duvida eu explico melhor sem problemas. att robson
Robson Teixeira
Curtidas 0
Respostas
Davi Costa
12/07/2011
Talvez vc precise limpar a arvore de componentes, add esse método no seu Bean:
public void refresh() {
FacesContext context = FacesContext.getCurrentInstance();
Application application = context.getApplication();
ViewHandler viewHandler = application.getViewHandler();
UIViewRoot viewRoot = viewHandler.createView(context, context
.getViewRoot().getViewId());
context.setViewRoot(viewRoot);
//context.renderResponse(); Optional
}
e execute ele na última linha da ação do seu botão.
refresh();
Dá uma olhada nesse link:
http://wiki.apache.org/myfaces/ClearInputComponents
att Davi
public void refresh() {
FacesContext context = FacesContext.getCurrentInstance();
Application application = context.getApplication();
ViewHandler viewHandler = application.getViewHandler();
UIViewRoot viewRoot = viewHandler.createView(context, context
.getViewRoot().getViewId());
context.setViewRoot(viewRoot);
//context.renderResponse(); Optional
}
e execute ele na última linha da ação do seu botão.
refresh();
Dá uma olhada nesse link:
http://wiki.apache.org/myfaces/ClearInputComponents
att Davi
GOSTEI 0
Dyego Carmo
12/07/2011
Corra o mais rapido que puder do jsf 1.x, troque para o 2 e use o set de componentes primefaces.
GOSTEI 0
Robson Teixeira
12/07/2011
Dyego se eu pude-se eu corria mas o projeto ja está todo estruturado no jsf 1.1 e infelizmente não da para correr.
e davi você tem outra ideia pois não funcionou a que você deu e acrescentando (o pior ) testei a pagina com a managedBean em session e so funciona a 1º vez e na 2º nem limpa a pagina fica como posso dizer no browser no mostra o resultado da 1º vez e nem renderiza fica o mesmo resultado e as mesmas coisas.
gente alguma ideia!!!!
att
robson
e davi você tem outra ideia pois não funcionou a que você deu e acrescentando (o pior ) testei a pagina com a managedBean em session e so funciona a 1º vez e na 2º nem limpa a pagina fica como posso dizer no browser no mostra o resultado da 1º vez e nem renderiza fica o mesmo resultado e as mesmas coisas.
gente alguma ideia!!!!
att
robson
GOSTEI 0
Dyego Carmo
12/07/2011
Qual o escopo deste bean ?
GOSTEI 0
Robson Teixeira
12/07/2011
request
GOSTEI 0
Dyego Carmo
12/07/2011
Troque para sessão e teste.
GOSTEI 0
Robson Teixeira
12/07/2011
Em sessao fica pior pois na 1º vez funciona e mostra o resultado
se eu tentar a 2º a pagina mantem os resultados da 1º vez quando renderizar e se tentar a 3º vez continua mantendo os resultados da 1º vez.
att
robson
GOSTEI 0