Como simular um Eventlistener no JSP, sem usar JavaScript?

14 respostas
jspjava
Alysson_Alves1

como eu posso capturar uma mudança, por exemplo a seleção de uma opção no <select/>
pra atualizar outra sem recarregar a página? gostaria de fazer isso sem JavaScript ou SQL.

14 Respostas

Lucas_Camara

Sem usar javascript e sem recarregar a página é complicado. Os caminhos que conheço, ou usam JS, ou recarregam a página.

Alysson_Alves1

então, js até da, mas eu gostaria de fazer esse projeto inteiro só com java, eu achei uma anotação @WebListener, que parece que ela serve pra verificar as mudanças nas páginas, não sei se da pra substituir, n sei muito sobre ,

Lucas_Camara

Esses listeners tem outro propósito. Com eles vc consegue executar ações acerca dos HttpSessions e das Servlets. Não envolve JSPs diretamente.

Pelo simples fato de ter uma mudança num select, como vc mencionou, seria necessário realizar uma subissão num form para executar uma ação, o que causaria o recarregamento da página, ou com js, mas ai teria o uso do JS (que vc não quer).

Infelizmente, não consigo pensar em outra forma.

Alysson_Alves1

Obrigado, vou usar JS msm ent. to o dia todo pesquisando e nada :-(. Qual a vantagem de programar em Java ou JSP, se ele tem esses tipos de limitações?É bem mais simples fzr td JS, to nessa teimosia pq gosto de java msm.

Lucas_Camara

Não misture o frontend e o backend. Nesse caso, java é melhor utilizado no backend. Para frontend, hoje em dia, javascript domina. Principalmente nessa onda de single page applications.

Mas, a critério de curiosidade, vc consegue “usar java” nas páginas por meio de taglibs. Vc cria a taglib e a utiliza como uma tag no html.

Alysson_Alves1

ent, java no front só da dor de cabeça, é gambiarra demais pra funcionar. Mas tipo meu projeto é tão simples, que se eu deixar essa parte pro Java Script, acabo o usando o java só pro CRUD, tipo essa parte de preencher o select é buscar na api do IBGE e preencher o segundo select de acordo com o estado do primeiro select, e enviar o formulário pro banco.

Lucas_Camara

Vc está acessando a API do IBGE diretamente pelo JSP? Se tu quiser usar mais o java para poder praticar, pode recuperar esses dados externos no backend.

Alysson_Alves1

eu faço a req toda no Java, passo só o JSONArray pro JSP, lá eu pego cada estado como JSONObject e preencho o select.
Minha linguagem preferida é de longe java, to aprendendo JS mas ainda tô num ponto muito superficial, ent até agr pelo que vi JS parece ser muito mais fácil de trabalhar e mais eficiente, mas eu acho que isso é pq eu ainda to na base ent n consigo comparar tds os pontos. Tipo, eu já sei o porque do Java n chegar nem aos pés do JS no Front, mas e no Back-end, oq torna o Java melhor pra isso?

Lucas_Camara

No backend, o que fortalece o java, são as ferramentas que existem feitas com ela. Por exemplo, tem o spring que eh excelente para desenvolver qualquer sistema. É muita coisa disponível que permite criar sistemas críticos que deixa o ecossistema bastante robusto. Sem falar na comunidade que eh muita grande e sempre contribui com bastante coisa (acho que a parte da comunidade eh a parte fundamental para o sucesso que o java é).

Mas digo tb que, hoje em dia, nem eh o java msm que está com a bola toda, mas sim a JVM, pois permite rodar outras linguagens na mesma plataforma (linguagens ainda mais produtivas ainda). Tb gosto do java, mas foi fundamental as melhorais que a linguagem sofreu nas últimas versões, senão não iria valer a pena usá-la, diante dos recursos que outras linguagens tem.

Alysson_Alves1

concordo a comunidade mantem o Java vivo. ainda n cheguei no Spring, mas pelo que vi ele era um carro-chefe do Java, mas o Spring tbm ta migrando pra outras linguagens como o kottlin, que é mais prática e tbm usa a JVM. Infelizmente acho que o java vai perder bastante popularidade, mas java é divertido de programar e eu nem sei dizer pq.

Lucas_Camara

Pode até perder popularidade, mas acredito que vá demorar bastante. Ainda tem muita coisa que sustenta a popularidade, como frameworks, libs, etc. E a questão da retrocompatibilidade é algo que ainda eh visto.

E, quando as novas versões ficarem mais disseminadas, talvez a popularidade aumente, e ainda mais se mais novidades vierem.

De qualquer forma é sempre bom aprender outras linguagens (e não ser programador de uma linguagem só). Quanto mais opções, melhor neh.

Alysson_Alves1

Vdd, recentemente o Java tem adotado a politica do ECMA, de atualizar com mais frequência. se n me engando do java 9 pra cá foi uma atualização por semestre.

Lucas_Camara

Isso mesmo. Dai vieram grandes mudanças, pq até a versão 7, dava dó. O brabo eh os recursos das ultimas versões estiveram disseminadas. Até lah eh ir usando o que estiver mais maduro, como as versões 8 ou 11 mesmo.

Alysson_Alves1

A versão 11 na minha opinião foi a uma das mais relevantes, chegou httpClient que n sei pq n tinha antes, é barril ter que procurar por libs externas pra usar, agr tem um padrão pra fzr essas requests.

Criado 20 de julho de 2020
Ultima resposta 20 de jul. de 2020
Respostas 14
Participantes 2