Limpar campos do formulário em JSP

Pessoal, estou com um probleminha…
Estou criando uma pagina (JSF) de um cadastro simples.
Está tudo funcionando, após inserir o dado na tabela, é direcionado a uma outra página dizendo que o cadastro ocorreu com sucesso…
Nessa página há um botão de voltar, porém, quando ele volta na página inicial do cadastro, vem com todos os campos preenchidos com os dados cadastrados :S
Ja tentei de várias maneiras, mas não consiguir limpar os campos…

Sou novo nessa área, estou começando agora e gostaria da ajuda de vocês…
Desde já obrigado…

Se vc quer que sempre ao carregar a pagina ou voltar os campos estejam em branco vc pode utilizar um codigo como esse:

<script>
    function limpa() {
        if(document.getElementById('campo').value!="") {
            document.getElementById('campo').value="";
            document.getElementById('campo2').value="";
            document.getElementById('campo3').value="";
        }
    }
</script>

Mas no caso, onde eu colocaria esse script?
Supondo, quero limpar esse campo:

<font><b>Nome</b></font>
<h:inputText maxlength="11" value="#{cadastro.nome}"/>

???

Colocando ele no final da pagina ele sera lido sempre que ela for carregada, coloca apenas o conteudo da função

<script>  
    document.getElementById('campo').value="";  
</script> 
<font><b>Nome</b></font>  
<h:inputText id="nome" maxlength="11" value="#{cadastro.nome}"/> 

//ai no final da página

 <script>    
     document.getElementById(nome).value="";    
 </script>

Porém, quando atualizo a página ele não apaga :S

Vc disse que está usando JSF correto ? Então faça a limpeza em seu ManagedBean.

Sua JSP:&lt;h:commandButton action="#{seuManagedBean.voltarTela}" /&gt;
Seu MB:public String voltarTela() { resetForm(); return getNavigationRuleInit(); } protected void resetForm() { campo1 = ""; campo2 = ""; }

Entendi em partes a lógica…
Porém, como vou colocar essa ação no botão inserir? sendo que ele ja tem a ação #{cadastro.inserir}
?

Usar o javascript não é uma boa idéia não …
Além de limpar o campo no MB pode também verificar seu escopo.
Um escopo de request não dura até a próxima requisição, o que provavelmente é o que você precisa !

Pode tentar colocar as ações de limpar no fim do método de inserção !

Obrigado a todos, resolvi o problema limpando os campo no método de inserir…
Acredito não ser o melhor método, ou o mais certo, mas vou continuar pesquisando…
Vlw

[quote=Thiago Siqueira]Obrigado a todos, resolvi o problema limpando os campo no método de inserir…
Acredito não ser o melhor método, ou o mais certo, mas vou continuar pesquisando…
Vlw[/quote]

De uma olhada em padroes de projeto aí vc encontrará uma boa solução!

[quote=Thiago Siqueira]Entendi em partes a lógica…
Porém, como vou colocar essa ação no botão inserir? sendo que ele ja tem a ação #{cadastro.inserir}
?[/quote]
Vc disse antes que “depois” de inserido no BD, vc clicava em um botão voltar.
O que fiz foi propor uma implementação para esse botão.

[quote=aluisiodsv]Além de limpar o campo no MB pode também verificar seu escopo.
Um escopo de request não dura até a próxima requisição, o que provavelmente é o que você precisa ![/quote]
Eu uso session e realizo a manutenção do lifeCycle de meus dados transitórios.

[quote=Thiago Siqueira]Obrigado a todos, resolvi o problema limpando os campo no método de inserir…
Acredito não ser o melhor método, ou o mais certo, mas vou continuar pesquisando…
Vlw[/quote]
Não é a opção correta, pois se ocorrer algum erro na inserção no BD vc perde os dados transitórios.
Ratificando, amadureça o exemplo didático do resetForm() e implemente um lifeCycle próprio para controle de seus dados transitórios.
A chamada ao método resetForm() deve ser obrigatória na inicialização da tela, logo, fluxos para “Limpar” e “Voltar” realizam essa chamada.