Por favor, alguém me ajude…
Preciso muito entender isso…
A
allan.kv
Help!!!
B
blackthorne
sobre as conversações do Seam, quando vc define um componente como ScopeType.CONVERSATION, voce está dizendo ao Seam, para que ele procure as anotações @Begin e @End nos metodos da action que usa teu componente.
Ainda estou estudando sobre isso, mas é basicamente oq acabei de dizer.
ele altera uma aplicação de exemplo que vem com o Seam. Uma aplicação que usa o escopo SESSION, ele altera pra CONVERSATION…
É de uma versão antiga do Seam, mas o conceito ajuda…
T
tubiluki
acho que quando o escopo nao eh declarado o padrão eh EVENT
o inicio e o fim de uma conversation podem ser declarados no pages.xml tb…
B
blackthorne
sim, eh isso mesmo.
O pages.xml tbm gerencia conversações. Alias, ele se garante em muitas outras coisas
A
allan_ablaze
Vou ser mais prátic…
Suponha que eu tenha três páginas em um caso de uso: Listar Funcionário, Atualizar Funcionário e Ver Funcionário.
Em meu caso de uso eu tenho uma classe que será usada por essas páginas para fazer acesso a métodos como:
obterListaFuncionario(), atualizarFuncionário(f), obterFuncionarioPorId(id)… e acessar variáveis como List<Funcionario> funcioarios, Funcionario funcionarioSelecionado etc… mais ou menos isso.
Ok, sendo assim, quando eu entrar nesse caso de uso eu quero iniciar uma conversação de ManterFuncionario e siga a seguinte navegação por exemplo:
Listar>Atualizar>Ver>Listar…
Mas quando eu sair desse caso de uso (indo para o manter Cliente por exemplo) eu quero fechar a conversação e destruir os componentes e variáveis instanciados nesse contexto de conversação.
Alguém poderia me dar um exemplo de um page.xml que faça isso.
E para esse caso eu colocaria o ScopeType.CONVERSATION na classe que eu citei a cima neh !?
M
mwaka
Basicamente é isso aqui embaixo…
o end conversation root=true é pra finalizar conversações aninhadas (nested) assim como no begin conversation eu tb começo conversações aninhadas…
vc pode definir isso no pages.xml principal pra qq view ou usar para cada página seu próprio xml, algo como home.pages.xml, para a página home.xhtml…
é bem útil isso, mas considere tb abrir e fehcar conversações pelas próprias funções nos componenetes seam…
Você pode começar ou terminar uma conversação não somente do pages, pode também usar annotation pra fazer isso.
exemplo para matar a conversacao:
@End ( BeforeRedirect = true )
public void metodoConversacao (){
}
Quando esse metodo for executado a conversação será encerrada.
O mesmo pode ser feito para iniciar uma conversacao @Begin() ae vc pode usar flushMode join. normal igual no pages.
att
C
carlos.scuna
Depende do tipo de classe…
Para um EJB Stateful o padrão é Conversation.
Para uma entidade JPA também.
Já para um EJB Stateless ou um MDB, o padrão é o escopo Stateless.
E para classes normais (POJOs), o padrão é Event.