Java web

6 respostas
J

pessoal sou iniciante em java web fiço um cadastro simples que quando clico no botao cadastrar ele cadastra no banco normalmente, mais fica aparecendo a mesma tela com os mesmos dados cadastrados na tela como faço para que quando eu clicar no botao cadastrar ele cadastre apareça uma mensagem cadastro realizado com sucesso e limpe a tela para um novo cadastro, olha como esta meu codigo

<?xml version="1.0" encoding="ISO-8859-1" ?> Tela de Login

<h:body>

<p:growl id="avisos" showDetail="true" life="3000" />
<p:fieldset legend="Meu Cadastro" toggleable="true">
	<h:form>
		<h:panelGrid columns="2">

			<h:outputText value="Nome.:" />
			<p:inputText id="nome" value="#{BeanCliente.cliente.nome}" />

			<h:outputText value="Observações.:" />
			<p:inputText value="#{BeanCliente.cliente.observacao}" />

			<h:outputText value="Data Cadastro.:" />
			<p:calendar value="#{BeanCliente.cliente.dataCadastro}" />

			<h:outputText value="Telefone.:" />
			<p:inputMask mask="(999)9999-9999"
				value="#{BeanCliente.cliente.telefone}" />

			<h:outputText value="CPF.:" />
			<p:inputMask mask="[CPF removido]" value="#{BeanCliente.cliente.CPF}" />

			<h:outputText value="Descrição.:" />
			<p:keyboard layout="qwertyBasic"
				value="#{BeanCliente.cliente.descricao}" />

			<h:outputText value="Senha.:" />
			<p:keyboard password="true" keypadOnlytrue="true"
				value="#{BeanCliente.cliente.senha}" />
		</h:panelGrid>
		<p:commandButton id="salvar" value="Salvar"
			action="#{BeanCliente.salvar}" />
	</h:form>
</p:fieldset>

</h:body>

6 Respostas

M

Ola amigo.

Talvez seu managed bean esteja marcado como @SessionScoped ou @ViewScoped ou quem sabe @ApplicationScoped e por esse motivo os campos continuem preenchidos após o gravar os dados na base.

Para limpar os campos após cada cadastro basta criar uma nova instância de um cliente no final do seu método salvar ou ainda usar um managed bean com uma anotação de @RequestScoped (o que resolver melhor o seu caso).

Já para a mensagem de sucesso no final do processo você pode usar o método addMessage do FacesContext também no final do seu método salvar.

Té mais.

aprendizweb

Você pode fazer isso na sua classe BeanCliente, posta ela ai!

J

package bean;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import modelo.Cliente;

import banco.BancoDeClientes;

@ManagedBean(name=BeanCliente)

@SessionScoped

public class ClienteBean {

BancoDeClientes bdc = new BancoDeClientes();

Cliente cliente = new Cliente(); // tem que criar os getters e set para acessalos
public String salvar(){
	bdc.salvar(cliente);
	return "sucesso";
}

public Cliente getCliente() {
	return cliente;
}

public void setCliente(Cliente cliente) {
	this.cliente = cliente;
}

}

aprendizweb

Bom em seu metodo salvar vc retorna a página sucesso, ou seja deve mapear no seu faces-config.xml desta forma:

<navigation-rule> <navigation-case> <from-outcome>Sucesso</from-outcome> <to-view-id>/sucesso.xhtml</to-view-id> <redirect/> </navigation-case> </navigation-rule>
ou pode fazer assim no seu metodo salvar:

public String salvar(){ bdc.salvar(cliente); return "sucesso?faces-redirect=true"; }

J

amigo vc tem um bom material para mim estudar java web+jsf+hibernate

aprendizweb

Abaixo vai o link da K19 e da Caelum, são bastantes práticas!!!

http://www.k19.com.br/downloads/apostilas

Criado 13 de outubro de 2012
Ultima resposta 14 de out. de 2012
Respostas 6
Participantes 3