Problema com <FORM ACTION..> em um servlet, me ajudem

5 respostas
J

Pessoal, estou criando um servlet que irá gerar 2 páginas html, uma no método Get, que tem um loop que percorre um banco de dados imprimindo seus valores, assim:
1
Cd: nomedocd
Artista: NomedoArtista…

Aqui vai um botão chamado comprar
2

Queria colocar dentro desse loop, onde tem 1 e 2 um e no 2 fecharia o , porém o loop está imprimindo apenas strings e antes de fechar o form gera um botão em cada loop. porem se eu clico nele não é passado nada depois do endereço da URL (htt://www.exemplo.com?dados=valor) para que eu possa ler no POST.
Porem fiz um exemplo colocando um aí desta forma é passado seu nome e valor na url corretamente. Alguém poderia me explicar como vou passar estes valores na url colocando apenas as strings geradas e impressas no loop sem colocar INPUT TEXT?

Obs: Criei um exemplo com INPUT HIDDEN e não passou o valor.

5 Respostas

C

esse valor que você quer passar é um valor fixo ou varia?

J

Ele varia cara…
Por exemplo seria http://localhost:8080/ServletCookie?artista=nomedoartista&album=nomedoalbum
mas cada botão comprar deveria passar essa url diferente de todos os outros.
pois no loop cada volta irá imprimir dados de um cd na tela entào o seu respectivo botão deverá passar essa url com os dados do loop a que o botão pertence.

C

e de onde você pega esse nomedoartista e nomedoalbun? é de algum dado de sua base de dados? não tem como você informar esse dado direto na url? tente postar o código fonte de como você mandou pra ficar mais claro…

J

Cara, obrigado pela ajuda e paciência, mas estou sem o código aqui. então deixa eu tentar lhe explicar.
O Nomedoartista e nomedocd, são “pegos” do banco de dados, toda volta do loop ele acessa o banco e pega esses valeres… blz?

Num dá pra eu passar o valor direto na url pq cada botão deve passar um valor… por exemplo…

Se tiver 2 cds no banco um assim: artista1, album1 e o segundo: artista2, album dois.
Quando o servlet for rodado o loop será executado 2 vezes e irá gerar 1 html assim:

Artista1, album1, (botão)Comprar
Artista2, album2, (botão)Comprar

Só isso, aí se eu clico no primeiro botão comprar ele passará os valores http://localhosta:8080/ServletCookie?artista=Artista1&album=Album1 e se eu clicar no segundo irá passar http://localhosta:8080/ServletCookie?artista=Artista2&album=Album2

Entendeu agora? Pois estou tentando por form, cada loop gerá um form junto com os dados mas como só está gerando strings na html, o botão não passa isso.

C

Cara, existe uma forma simples de resolver isso!

Primeiro, vou considerar que você está acessando os dados do seu código por uma classe onde você retorna os tipos de valores dos dados (string, inteiro, booleanos). Então, imagino que você tenha criado essa classe com os objetos privados e métodos get e setters.

1 - Antes do while, voce instancia um objeto dessa classe como ArrayList ou List.
2 - Pra cada vez que o while passar, você adiciona o resultado do while nesse objeto, assim você terá (quando clicar o botão comprar) esse objeto referenciado no banco de dados.

Senão, você vai ter que fazer essa interação do while com scriplets. Mas a forma acima é a mais simples de se fazer.

Criado 18 de maio de 2006
Ultima resposta 18 de mai. de 2006
Respostas 5
Participantes 2