Bom dia galera sangue bom.
É o seguinte, tenho na minha aplicação uma rotina de pesquisa, até aí td bem, efetuo a busca, me trás o retorno, eu clico neste retorno, abre o formulário com os campos preechidos, se acaso eu clicar no link do menu que se encontra no cabeçaho da tela, e retorno para o cadastro o formulário continua preenchido, como faço para limpar estes dados qdo eu saio da tela?
Meu faces-config.xml está assim.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
"http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
<faces-config>
<application>
<message-bundle>message</message-bundle>
<locale-config>
<default-locale>pt_BR</default-locale>
</locale-config>
</application>
<converter>
<display-name>Conversor Hora HH:mm</display-name>
<converter-id>converteHora</converter-id>
<converter-class>br.com.viasoft.converters.ConverteHora</converter-class>
</converter>
<converter>
<display-name>Conversor Hora HH:mm</display-name>
<converter-id>converteDataHora</converter-id>
<converter-class>br.com.viasoft.converters.ConverteDataHora</converter-class>
</converter>
<managed-bean>
<managed-bean-name>login</managed-bean-name>
<managed-bean-class>br.com.monisat.login.Login</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>logout</managed-bean-name>
<managed-bean-class>br.com.monisat.login.Logout</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>empresa</managed-bean-name>
<managed-bean-class>br.com.monisat.empresa.Empresa</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>cadEmpresa</managed-bean-name>
<managed-bean-class>br.com.monisat.empresa.CadEmpresa</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>home</managed-bean-name>
<managed-bean-class>br.com.monisat.home.Home</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>pesqEmpresa</managed-bean-name>
<managed-bean-class>br.com.monisat.pesquisa.PesqEmpresa</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<display-name>*</display-name>
<from-view-id>*</from-view-id>
<navigation-case>
<from-outcome>login</from-outcome>
<to-view-id>/login/login.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>logout</from-outcome>
<to-view-id>/login/logout.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>home</from-outcome>
<to-view-id>/home/home.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-outcome>cadEmpresa</from-outcome>
<to-view-id>/cadastro/cadEmpresa.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<lifecycle>
<phase-listener>br.com.monisat.phaselistener.Listener</phase-listener>
</lifecycle>
</faces-config>
Se alguém tiver um exemplo aí q possa postar, desde já agradeço.
Att.
Diego Silva
//Já tentou por esse bean escopo request ?
# <managed-bean>
# <managed-bean-name>pesqEmpresa</managed-bean-name>
# <managed-bean-class>br.com.monisat.pesquisa.PesqEmpresa</managed-bean-class>
# <managed-bean-scope>session</managed-bean-scope>
# </managed-bean>
Olá… Já tentei sim, aí dá uma exception e nem busca os dados.
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Error calling action method of component with id form:_idJsp33
javax.faces.webapp.FacesServlet.service(FacesServlet.java:154)
org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)
root cause
javax.faces.FacesException: Error calling action method of component with id form:_idJsp33
org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)
javax.faces.component.UICommand.broadcast(UICommand.java:109)
org.ajax4jsf.framework.ajax.AjaxViewRoot.processEvents(AjaxViewRoot.java:180)
org.ajax4jsf.framework.ajax.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:158)
org.ajax4jsf.framework.ajax.AjaxViewRoot.processApplication(AjaxViewRoot.java:346)
org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)
root cause
javax.faces.el.EvaluationException: Exception while invoking expression #{pesqEmpresa.carregaDados}
org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:156)
org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:61)
javax.faces.component.UICommand.broadcast(UICommand.java:109)
org.ajax4jsf.framework.ajax.AjaxViewRoot.processEvents(AjaxViewRoot.java:180)
org.ajax4jsf.framework.ajax.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:158)
org.ajax4jsf.framework.ajax.AjaxViewRoot.processApplication(AjaxViewRoot.java:346)
org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)
root cause
java.lang.NullPointerException
br.com.monisat.pesquisa.PesqEmpresa.carregaDados(PesqEmpresa.java:71)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:132)
org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:61)
javax.faces.component.UICommand.broadcast(UICommand.java:109)
org.ajax4jsf.framework.ajax.AjaxViewRoot.processEvents(AjaxViewRoot.java:180)
org.ajax4jsf.framework.ajax.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:158)
org.ajax4jsf.framework.ajax.AjaxViewRoot.processApplication(AjaxViewRoot.java:346)
org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.22 logs.
Apache Tomcat/7.0.22
Valeu!!
Certo, poderia postar a pagina que faz a pesquisa e o bean por favor ? creio que já sei qual é o problema.
pesqEmpresa
<%@page import="br.com.monisat.empresa.CadEmpresa"%>
<%@ page contentType="text/html;charset=iso-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="https://ajax4jsf.dev.java.net/ajax" prefix="a4j"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
<%@ taglib uri="http://myfaces.apache.org/sandbox" prefix="s"%>
<%@ page import="br.com.monisat.pesquisa.PesqEmpresa"%>
<html>
<head>
<%@include file="../home/importar.jsp"%>
<style type="text/css">
.valores {
display: inline;
}
</style>
</head>
<body>
<f:view>
<h:form id="form">
<div id="toolbar-home">
<div class="migalha">
<a href="../home/home.jsf">Inicio</a> > <b>Pesquisa de
Empresas</b>
</div>
<%@include file="../home/sair.jsp"%>
<div class="clear"></div>
</div>
<f:verbatim>
<br>
</f:verbatim>
<a4j:outputPanel ajaxRendered="true" styleClass="fonte">
<t:messages rendered="true" id="message" infoClass="infoClass"
warnClass="warnClass" errorClass="errorClass"
fatalClass="fatalClass" />
</a4j:outputPanel>
<br/>
<t:div>
<b><h:outputLabel value="Critérios da Pesquisa" /></b>
<h:selectOneRadio value="#{pesqEmpresa.critPesquisa}"
rendered="true" valueChangeListener="#{pesqEmpresa.trataCriterio}"
style="border-spacing: 25px;" immediate="true">
<f:selectItem itemValue="A" itemLabel="Nenhum" />
<f:selectItem itemValue="N" itemLabel="Nome" />
<f:selectItem itemValue="F" itemLabel="Nome Fantasia" />
<f:selectItem itemValue="C" itemLabel="CNPJ" />
<f:selectItem itemValue="Cd" itemLabel="Cidade" />
<a4j:support event="onchange" immediate="true" ajaxSingle="true"
reRender="principal, cidades, valores" />
</h:selectOneRadio>
<t:div id="val">
<t:div id="principal">
<t:column rendered="#{pesqEmpresa.divAtiva eq 'A'}">
</t:column>
</t:div>
<t:div id="valores" styleClass="valores">
<t:column rendered="#{pesqEmpresa.divAtiva eq 'V'}">
<h:panelGrid>
<h:column>
<h:outputLabel value="Insira os dados da pesquisa:" />
</h:column>
<h:column>
<t:inputText binding="#{pesqEmpresa.valorPesquisa}"
id="valorPesquisa" size="60"
title="Insira um valor para efetuar a pesquisa" />
</h:column>
</h:panelGrid>
</t:column>
</t:div>
<t:div id="cidades">
<t:column rendered="#{pesqEmpresa.divAtiva eq 'C'}">
<h:panelGrid>
<h:column>
<h:outputLabel value="Escolha uma cidade" />
</h:column>
<h:column>
<h:panelGroup
title="Selecione uma cidade para efetuar
a filtragem de clientes por cidade">
<h:inputText binding="#{pesqEmpresa.idCidade}" id="idCidade"
size="6"
onfocus="document.getElementById( 'form:cidade' ).focus();"
styleClass="transparente">
</h:inputText>
<f:verbatim> </f:verbatim>
<s:tableSuggestAjax id="cidade"
suggestedItemsMethod="#{pesqEmpresa.listCidades}"
maxlength="50" var="list" size="55" betweenKeyUp="300"
startRequest="2" charset="utf-8"
binding="#{pesqEmpresa.cidade}">
<t:column>
<f:facet name="header">
<s:outputText style="font-size:8;" value="Id" />
</f:facet>
<s:outputText for="idCidade" style="font-size:8px;"
label="#{list.id}" />
</t:column>
<t:column>
<f:facet name="header">
<s:outputText style="font-size:8;" value="Nome" />
</f:facet>
<s:outputText for="cidade" style="font-size:8px;"
label="#{list.nome}" />
</t:column>
</s:tableSuggestAjax>
</h:panelGroup>
</h:column>
</h:panelGrid>
</t:column>
</t:div>
</t:div>
<br />
<h:commandButton action="#{pesqEmpresa.carregaDados}"
value="Pesquisar" styleClass="garbo-button border" />
<h:commandButton action="#{pesqEmpresa.limparGrid}"
value="Nova Pesquisa" id="btnPesquisar"
styleClass="garbo-button border" />
</t:div>
<br />
<t:div>
<t:dataTable var="lista" style="width: 80%;" rowClasses="row1, row2"
value="#{pesqEmpresa.listaCliente}">
<h:column>
<f:facet name="header">
<h:outputLabel value="Nome" />
</f:facet>
<h:commandLink id="nome" value="#{lista.nome}"
action="#{cadEmpresa.pegaCliente}">
<f:param name="cliente" value="#{lista.cliente}" />
</h:commandLink>
</h:column>
<h:column>
<f:facet name="header">
<h:outputLabel value="Nome Fantasia" />
</f:facet>
<h:outputText id="nomeFantasia" value="#{lista.fantasia}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputLabel value="CNPJ" />
</f:facet>
<h:outputText id="cnpj" value="#{lista.cgc }" />
</h:column>
<t:column style="width: 100">
<f:facet name="header">
<h:outputLabel value="Cidade" />
</f:facet>
<h:outputText id="cidade" value="#{lista.cidade}" />
</t:column>
</t:dataTable>
</t:div>
</h:form>
</f:view>
</body>
</html>
bean
package br.com.monisat.pesquisa;
import java.util.ArrayList;
import java.util.List;
import javax.faces.event.ValueChangeEvent;
import javax.swing.JOptionPane;
import br.com.hibernate.dao.CidadeDao;
import br.com.hibernate.dao.TsClienteDao;
import br.com.hibernate.model.Ppescli;
import br.com.monisat.util.Help;
import br.com.monisat.util.MessageHelper;
import br.com.monisat.util.PadraoTableSuggest;
public class PesqEmpresa extends PesqEmpresaForm {
private String critPesquisa = "A";
private List<Ppescli> listaCliente = null;
private Boolean status = null;
private String divAtiva = "";
public PesqEmpresa() {
}
public String getDivAtiva() {
return divAtiva;
}
public void setDivAtiva(String divAtiva) {
this.divAtiva = divAtiva;
}
public String getCritPesquisa() {
return critPesquisa;
}
public void setCritPesquisa(String critPesquisa) {
this.critPesquisa = critPesquisa;
}
public List<Ppescli> getListaCliente() {
return listaCliente;
}
public void setListaCliente(List<Ppescli> listaCliente) {
this.listaCliente = listaCliente;
}
public void trataCriterio(ValueChangeEvent event) {
critPesquisa = (String) event.getNewValue();
if (critPesquisa.equals("Cd")) {
divAtiva = "C";
} else if (critPesquisa.equals("A")){
divAtiva = "A";
} else {
divAtiva = "V";
}
}
public String carregaDados() {
String valorPesquisa = "";
if (critPesquisa.equals("A")) {
MessageHelper.addMessage(
"Favor escolher um critério para pesquisa", 2);
} else if (critPesquisa.equals("Cd")) {
valorPesquisa = (String) this.idCidade.getValue();
} else {
valorPesquisa = (String)this.valorPesquisa.getValue();
}
listaCliente = new TsClienteDao().getCliente(valorPesquisa,
critPesquisa);
limpar();
return "pesqEmpresa";
}
public Boolean verificaValor() {
status = null;
if (divAtiva.contains("V")) {
status = true;
} else {
status = false;
}
return status;
}
public List<PadraoTableSuggest> listCidades(String index) {
List<PadraoTableSuggest> list = new CidadeDao().listaCidade(index);
return list;
}
public void limpar() {
this.valorPesquisa.setValue("");
this.cidade.setValue("");
this.idCidade.setValue("");
}
public void limparGrid() {
this.listaCliente = new ArrayList<Ppescli>();
this.critPesquisa = "A";
}
}