Preencher combobox - Struts Action ou Servlet  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
JeffersonJCosta
Java Ninja

Membro desde: 20/12/2007 13:38:59
Mensagens: 267
Offline

Pessoal,

Estou querendo preencher uma combobox com valores salvos no BD, andei pesquisando e vi que algumas pessoas fazem uma nova Action do Struts(que eu uso) chamando o metodo de listagem do DAO e depois colocam essa lista em , vi algumas pessoas fazendo parecido com Servlet. A minha dúvida é: como colocar a lista que irei conseguir através do DAO em varios arquivos jsps?
Se for em uma Action do Struts, por exemplo, eu vou fazer essa linha acima e depois da um retorno, esse retorno vai estar no meu struts-config.xml e ira me redirecionar para alguma jsp, onde irei colocar os valores na combo, mas eu vou ter varios jsps que irao ter combo de estado, por exemplo, e precisarei preencher varias vzs essa combo, mas como fazer preencher varias combos varias vezes, vou ter que fazer diversas Actions ou diversos Servlets?
Deu pra entender?
rafaelpaz
JavaTeenager
[Avatar]

Membro desde: 22/02/2008 10:27:20
Mensagens: 162
Localização: Floripa - SC
Offline

brother, pelo que entendi você quer pegar essas informações do banco e poder utilizar em qualquer parte do projeto, certo?
Se realmente for dessa forma, você pode jogar os valores do combo que você pegou do combo em sessão:

ah e depois para pegar, só pegar da sessão

Assim não precisa pegar os valores do banco várias vezes...

This message was edited 2 times. Last update was at 15/03/2010 15:29:47


Saber muito é bom, mas saber o suficiente e ajudar o próximo, é o mais importante.
JeffersonJCosta
Java Ninja

Membro desde: 20/12/2007 13:38:59
Mensagens: 267
Offline

É isso mesmo, quero pegar do banco e usar varias vezes, sem precisar ficar criando varios arquivos nem acessando direto o BD, já tinha pensado em sessao, mas essa eh a melhor ou a unica saida? Nao vai pesar meu sistema nao? Nao tem nenhuma implicação negativa?
Outra dúvida é: posso fazer isso com uma Action do Struts certo? Mas como e onde executá-la para criar essa lista?

This message was edited 1 time. Last update was at 15/03/2010 15:41:14

rafaelpaz
JavaTeenager
[Avatar]

Membro desde: 22/02/2008 10:27:20
Mensagens: 162
Localização: Floripa - SC
Offline

na verdade aqui na empresa também utilizamos o struts, e fazemos desta forma, não conheço alguma maneira de fazer isso no struts, acredito que nem exista também, então acho que o melhor é jogar na sessão, na verdade iria ficar pior se você tivesse que buscar várias vezes no banco o processamente seria maior..

Saber muito é bom, mas saber o suficiente e ajudar o próximo, é o mais importante.
JeffersonJCosta
Java Ninja

Membro desde: 20/12/2007 13:38:59
Mensagens: 267
Offline

Com certeza, ficar acessando o Bd direto é pior do que deixar na sessao, posso até fazer isso, mas você diz para eu criar a lista através de uma servlet ou de uma ação do Struts? Como chamar a servlet ou a ação antes de mostrar o jsp? Essa agora é minha dúvida.
rafaelpaz
JavaTeenager
[Avatar]

Membro desde: 22/02/2008 10:27:20
Mensagens: 162
Localização: Floripa - SC
Offline

Para pegar a lista, depende da estrutura da tua aplicação, podes ter um metodo que faça a consulta no BD e jogar esse valor para sessão diretamente, dentro da action mesmo, ou em alguns casos se a tiveres mais de uma camada, vai ter que "caminhar" por entre essas camadas para acessar o banco e depois jogar em session

Saber muito é bom, mas saber o suficiente e ajudar o próximo, é o mais importante.
JeffersonJCosta
Java Ninja

Membro desde: 20/12/2007 13:38:59
Mensagens: 267
Offline

Vou fazer dentro de um Action mesmo, mas comom executá-la? Em algum lugar vou ter que colocar listaEstados.do, por exemplo, mas onde? Pois ao clicar em Cadastrar, por exemplo, abre direto o jsp, nao tem como eu colocar a action vinculada ao link, nao sei onde posso coloca-la? Tem como executar uma action sem vincula-la a cliques, links, forms, ou algo do tipo?
rafaelpaz
JavaTeenager
[Avatar]

Membro desde: 22/02/2008 10:27:20
Mensagens: 162
Localização: Floripa - SC
Offline

JeffersonJCosta wrote:Com certeza, ficar acessando o Bd direto é pior do que deixar na sessao, posso até fazer isso, mas você diz para eu criar a lista através de uma servlet ou de uma ação do Struts? Como chamar a servlet ou a ação antes de mostrar o jsp? Essa agora é minha dúvida.

Velho, te aconselho a criar uma action para chamar o metodo que acessa o BD, um exemplo(tosco) abaixo.hehehe:

Saber muito é bom, mas saber o suficiente e ajudar o próximo, é o mais importante.
JeffersonJCosta
Java Ninja

Membro desde: 20/12/2007 13:38:59
Mensagens: 267
Offline

Entao eu dou o forward no meu xml para um jsp qualquer que eu precise dessa lista, por exemplo, depois eu vou acessar pela sessao, quando precisar de novo, em outro form e outro jsp, nao vou precisar desse forward, só da sessao mesmo né?
Mas seu eu criar uma nova action e chamar o metodo da minha DAO pra listar do BD, nao vou precisar chamar essa action alguma vez? Pra ela listar e depois passar pro meu jsp? Basta eu criar a action, listar, jogar na sessao e pronto, nao tenho q em algum momento chama-la?

This message was edited 1 time. Last update was at 15/03/2010 16:01:13

rafaelpaz
JavaTeenager
[Avatar]

Membro desde: 22/02/2008 10:27:20
Mensagens: 162
Localização: Floripa - SC
Offline

Em struts você vai utilizar o struts-config.xml, não o web.xml que usaria se estivesse utilizando servlets:E você precisara setar os dados em session apenas uma vez, quando voce precisar de outro form não precisara fazer isso novamente,pode ficar tranquilo. Basta você criar a action, listar na sessão e não tera que chama-lá novamente. Isso mesmo brother.!!

This message was edited 1 time. Last update was at 15/03/2010 16:12:39


Saber muito é bom, mas saber o suficiente e ajudar o próximo, é o mais importante.
JeffersonJCosta
Java Ninja

Membro desde: 20/12/2007 13:38:59
Mensagens: 267
Offline

Eu sei que criando a lista na sessao nao vou precisar chama-la mais, a minha dúvida é: nao basta eu criar a action, listar os estados dentro dela e dar o forward, em algum momento eu vou ter que chamar essa action, em algum momento vou ter que executar o listarEstados.do, ou não? Nao sei como executar essa action, entendeu? Até sei, posso colocar num submit, num link, etc., o problema é que eu ja chamo varias actions quando estou precisando dessa lista, nao sei se tem como essa action funcionar automaticamente, sem a necessidade de estar num action de um form ou no onclik de um button, ou num link, sei la
rafaelpaz
JavaTeenager
[Avatar]

Membro desde: 22/02/2008 10:27:20
Mensagens: 162
Localização: Floripa - SC
Offline

É, pelo que conheço, não tem como você chamar automaticamente, você terá que chamar a sua listarEstados.do de alguma forma. Ou você poderia chamar automaticamente no seu web.xml, aí seria automático, mas acho que seria meio cambiarra.

Saber muito é bom, mas saber o suficiente e ajudar o próximo, é o mais importante.
JeffersonJCosta
Java Ninja

Membro desde: 20/12/2007 13:38:59
Mensagens: 267
Offline

Ah tah, entendi, eh ja estou fazendo algumas cambiarras, é melhor tentar de outro jeito. Vou ver aqui, vou achar uma saida.
Só mais uma coisa: o exemplo que me deu acima pra acessar a asessao é usando scriplets, como fazer com taglib?
Eu fiz assim e nao esta funcionando:

This message was edited 1 time. Last update was at 15/03/2010 16:24:44

rafaelpaz
JavaTeenager
[Avatar]

Membro desde: 22/02/2008 10:27:20
Mensagens: 162
Localização: Floripa - SC
Offline

terás que fazer assim:



Não precisa utilizar scriptles para pegar atributos da sessão, podes utilizar o items="${listaEstados}", como esta utilizando, ele é inteligente a ponto de saber que está em session

This message was edited 1 time. Last update was at 15/03/2010 16:37:44


Saber muito é bom, mas saber o suficiente e ajudar o próximo, é o mais importante.
JeffersonJCosta
Java Ninja

Membro desde: 20/12/2007 13:38:59
Mensagens: 267
Offline

Fiz isso, mas nao listou nada, acho que nao deve estar trazendo do BD direito, muito estranho, mas valeu mesmo.
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team