Pre cadastro

5 respostas
Deluxe

eu tenho esse relacionamento

Na Minha tabela Principal (class Servidor)

@OneToMany (mappedBy="servidor") @Cascade (org.hibernate.annotations.CascadeType.ALL) @LazyCollection(LazyCollectionOption.TRUE) private Set<DependenteServidor> dependente;

Minha outra tabela DependenteServidor

@ManyToOne @JoinColumn (name="ID_SERVIDOR", nullable = false) private Servidor servidor;

entao… 1 servidor pode ter varios dependente…
na minha tela de cadastro… tem um botao cadastrar dependente, que abre um pop-up pra fazer um mini-cadastro do dependente…
como eu faco pra armazena 1 ou mais dependentes?
pq eu nao posso mandar direto pro banco, eu tenho que fazer um pre-cadastro, guarda esses dados em algum lugar(?), e depois quando eu terminar o cadastro na outra tela, ele vai levar meu “pre-cadastro” junto…

deu pra entender?
vlw
o cara falo pra mim armazenar em uma session, mas eu nao sei como faz isso
alguem tem um exemplo?

5 Respostas

sjoaquim

Dentro dos métodos doPost e doGet do Servlet você consegue colocar colocar ítens na sessão da seguinte forma:

request.getSession(true).put("nomeDoAtributo", referenciaParaOAtributo);

Esse atributo pode ser qualquer tipo primitivo ou objeto (desde que o objeto implemente Serializable).

Depois, para obter de volta em outro Servlet, use

TipoDoObjeto variavel = (TipoDoObjeto) request.getSession(true).get("nomeDoAtributo");
Deluxe

isso serve tb pra jsf?
nao tem um exemplo mais completo? ou um tutorial…
nao fico muito claro

sjoaquim

JSF é um pouco diferente! Você consegue guardar essas informações através de uma lista num managed bean com escopo de sessão.

Digamos:

public class DependentesMB{
    private List&lt;Dependente&gt; dependentes;
    private Dependente dependenteAtual;

    public String adicionaDependente(){
        dependentes.add(dependenteAtual);
        depdendenteAtual = new Dependente();
    }

    public Dependente setDependente(){
        ...
    }

    public void setDependente(Dependente novoDep){
        ...
    }
}
E na hora de declarar esse managed bean no xml, coloca assim:
&lt;managed-bean&gt;
    &lt;managed-bean-name&gt;DependentesMB&lt;/managed-bean-name&gt;
    &lt;managed-bean-class&gt;
        DependentesMB
    &lt;/managed-bean-class&gt;
    &lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt;
    (...)
&lt;/managed-bean&gt;

Recomendo você olhar o tutorial de faces aqui:
http://java.sun.com/javaee/5/docs/tutorial/doc/bnapl.html

m0ska

é simples, coloca o objeto na sessão pra não perder os dados.
Daí vc vai adicionando dependentes ao objeto.
Depois salva o objeto.

Independente de framework esse é o conceito básico.

sjoaquim

Pois é, o conceito é o mesmo, a forma de fazer muda um pouco. Recomendo fortemente você estudar um pouco como funciona o esquema de sessão e requisição dos Servlets antes de fazer qualquer outra coisa, pois esses conceitos são fundamentais para qualquer framework ou tecnologia web que você for utilizar.

Dá uma olhada na parte de Web Tier aqui:
http://java.sun.com/javaee/5/docs/tutorial/doc/

Criado 26 de agosto de 2008
Ultima resposta 26 de ago. de 2008
Respostas 5
Participantes 3