Tela JSF 1.0 fica com as mesmas informações da primeira vez que foi carregada e utilizada

7 respostas
P

Olá,

tenho uma página que é para deletar registros do banco quando executa primeira vez tem alguns
parametros de entrada e executo faz tudo certo.

Depois vou navegar pela aplicação em outras telas e volto para essa tela deleção de registros
e a tela está com os parametros prrenchidos anteriormente como faço pra limprar esses parametros
automaticamente...

se alguém puder me ajudar..agradeceria

MB
<managed-bean>
    <managed-bean-name>respostaAlunoMB</managed-bean-name>
    <managed-bean-class>ao.edu.imag.avalia.view.managedbean.RespostaAlunoMB</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
  </managed-bean>

[code]
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:rich="http://richfaces.org/rich"
xmlns:t="http://myfaces.apache.org/tomahawk"
xmlns:a4j="https://ajax4jsf.dev.java.net/ajax"
xmlns:demoiselle="http://www.frameworkdemoiselle.gov.br">
<ui:composition template="/public/templates/default.xhtml">
<ui:define name="body">

<head>
</head>

<h:form>
<h:messages />
<demoiselle:useJs all="true">
</demoiselle:useJs>

<rich:toolBar height="34" itemSeparator="line"
styleClass="richPanelBodyClass">

<rich:toolBarGroup>
<h:outputLabel value="Limpeza Resposta Aluno" />
</rich:toolBarGroup>
</rich:toolBar>
<table summary="" align="left">

<tr></tr>
<tr></tr>

<tr>
<td><h:outputLabel for="nomeAluno" styleClass="outputLabel"
value="Nome do Aluno :" />
</td>
<td align="left">
<h:selectOneMenu id="alunoEscolhido"
value="#{respostaAlunoMB.alunoEscolhido}">
<f:selectItems value="#{respostaAlunoMB.distinctAlunos}" />
</h:selectOneMenu>
</td>
</tr>
<tr></tr>
<tr></tr>
<tr>
<td>
<h:inputText maxlength="100" size="100" id="mensagem" value="#{respostaAlunoMB.mensagem}" />
</td>
</tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
</table>
<div style="padding: 10px; text-align: right;">
<t:commandButton
title="Confirma a Limpeza de Aluno" value="Confirma a Limpeza de Aluno"
action="#{respostaAlunoMB.deletaLimpezaAluno}" />
<h:commandButton action="#{perguntaAlunoMB.listar}" value="Voltar" /></div>
</h:form>

</ui:define>

</ui:composition>

7 Respostas

P

nada ainda…

alguém pode me ajudar…

abs

andii.brunetta

Isso acontece porque vc está usando o escopo de session.
Quando vc fizer executar alguma ação, por exemplo: gravar, alterar e remover… depois de executá-los, vc precisa dar um new SeuObjeto(); ou setar esse objeto como null.
Que eu saiba automaticamente não tem como fazer isso.

P

ainda n]ao deu certo…

ao clicar no botão LImpeza chama o metodo deletaLimpezaAluno()
ao terminar volta do DAO jogo a mensagem "Limpeza Resposta Aluno Terminada."

no campo mensagem e fica a mensagemna tela…ok
mais qdo saio da tela vou em outra tela e retorno para essa tela de Limpeza novamente está
a mensagem na tela e a opção
escolhida …

Observação na tela somente existe campo da classeMB mesmo no metodo colocando null não limpa…

passo a passo do que estou fazendo

opção do menu

rich:toolBarGroup rendered="#{usuarioMB.isAdministrador}"&gt;
&lt;h:commandLink value="Limpeza Resposta Aluno" title="Limpeza de Resposta de Aluno"
	action="#{respostaAlunoMB.limpezaAluno}" /&gt;
&lt;/rich:toolBarGroup&gt;
&lt;navigation-case&gt;
      &lt;from-outcome&gt;resposta_aluno_limpeza_aluno&lt;/from-outcome&gt;
      &lt;to-view-id&gt;/private/pages/resposta_aluno_limpeza_aluno.xhtml&lt;/to-view-id&gt;
    &lt;/navigation-case&gt;

MB

public class RespostaAlunoMB extends AbstractManagedBean {
	@Injection
	private IRespostaAlunoBC respostaAlunoBC;
	private RespostaAluno respostaAluno ;
	private List&lt;RespostaAluno&gt; listRespostaAluno = new ArrayList&lt;RespostaAluno&gt;();

	private String pontuacao ;
    private int contador =0;
    
   // private RespostaAlunoMB respostaAlunoMB;
	/* Pergunta Aluno*/
	
	private PerguntaAluno perguntaAlunoUsado;
	private String nomeAluno;
	Object[] perguntaAlunoObject = null;
	
	//Pagina Limpeza de Alunos
	
	
	private List&lt;SelectItem&gt; distinctAlunos ;
	private String           alunoEscolhido;
	private String           mensagem = new String();
	public RespostaAlunoMB() {
		perguntaAlunoUsado = new PerguntaAluno();		
		respostaAluno      = new RespostaAluno();
		pontuacao = "4";
		mensagem = new String();
		alunoEscolhido=null;
		
	}
	
	}

	public String limpezaAluno(){
		return AliasNavigationRule.ALIAS_RESPOSTA_ALUNO_LIMPEZA_ALUNO;
	}


	public String deletaLimpezaAluno() throws DAOException{
		
		RespostaAlunoBC alunoBC = new RespostaAlunoBC();
		
		try{
	
			alunoBC.deletaLimpezaAluno(alunoEscolhido);
			this.mensagem= "Limpeza Resposta Aluno Terminada. "	;
		}catch(DAOException e){
			System.out.println("Erro ao deletar Aluno no método deletaLimpezaAluno() =" + e);
		}catch (Exception e1){
			System.out.println("Erro ao deletar Aluno no método deletaLimpezaAluno() ="+e1);
		}
		
		return AliasNavigationRule.ALIAS_RESPOSTA_ALUNO_LIMPEZA_ALUNO;
	}
F

tenta assim

public String deletaLimpezaAluno() throws DAOException{  
          
        RespostaAlunoBC alunoBC = new RespostaAlunoBC();  
          
        try{  
      
            alunoBC.deletaLimpezaAluno(alunoEscolhido);  
            this.mensagem= "Limpeza Resposta Aluno Terminada. " ;  
            alunoEscolhido = null;
        }catch(DAOException e){  
            System.out.println("Erro ao deletar Aluno no método deletaLimpezaAluno() =" + e);  
        }catch (Exception e1){  
            System.out.println("Erro ao deletar Aluno no método deletaLimpezaAluno() ="+e1);  
        }  
          
        return AliasNavigationRule.ALIAS_RESPOSTA_ALUNO_LIMPEZA_ALUNO;  
    }
andii.brunetta

FelipeThi, foi isso que eu quis dizer pra ele, de anular o objeto.

F

Exatamente é o que eu faço.

E nos meus métodos eu passo todos como (ActionEvent actionEvent)

P

obrigado pela ajuda…

deu certo…

abs a todos…

Criado 24 de abril de 2011
Ultima resposta 27 de abr. de 2011
Respostas 7
Participantes 3