Estou começando agora a desenvolver para web, até pouco tempo atrás tudo o que eu havia feito em Java utilizava Swing.
Tenho diversas dúvidas quanto à camada de apresentação de aplicações web escritas em Java. Exemplos:
Como criar tabelas com linhas selecionáveis? No mesmo esquema dos webmails, onde eu clico em uma linha e a aplicação exibe os detalhes daquele item?
Tem como separar os java scripts dos jsp, para não misturar o código? Ou isso não constitui grandes problemas do ponto de vista de padrões de projeto?
Onde posso encontrar exemplos de camada de apresentação, com exemplos de layouts e componentes gráficos que melhorem a usabilidade do sistema?
Se, por exemplo, eu tiver um menu com diversas opções do sistema, e este menu tiver que ser carregado em todas as páginas do sistema, como faço? Tenho que re-escrever o código para todos os jsp?
Como podem ver sou totalmente leigo em web. Tenho conhecimento de HTML e de HTTP, quanto a isso sem problema. Também já compreendi a separação de responsabilidades entre os JSP e os Servlets. Mas ainda tenho MUITAS dúvidas em aspectos como os que citei acima, é tudo muito diferente de se desenvolver uma aplicação desktop.
Preciso desenvolver um sistema web que considero até simples, mas estou um pouco empacado nestes detalhes. Qualquer ajuda será muito bem vinda!
Você pode fazer isso na mão, utilizando a tag href html normal, usar a JSTL ou ainda a displayTag. Um conjunto tag especializadas na camada de apresentação, com muitos recursos visuais.
Sim, tem como. Você cria seu(s) arquivo(s) .JS (java script) e no seu jsp faz um referencia assim : <script language=“text/javascript” scr=“caminho/nomeArquivo.js”></script>. E invoca normalmente as funções no seu jsp, como se o javaScript estivesse dentro do seu JSP.
Você pode encontrar aqui no GUJ e no Gmail. Faça uma busca. Mas seria interessante se aprofundar em desenvolvimento Web antes de iniciar com JSP, pois você vai usar muito html puro ou através de tagLibs. E a parte visual também.
Você pode colocar o seu menu ou qualquer artefato que se repita em várias telas, em um arquivo separado. E sempre que precisar adicioná-lo, use a tag <@jsp:include> no jsp. Pesquise sobre ela.
Existem frameworks que facilitam o trabalho de desenvolvimento visual como o Velocity, o JSF, AdobeFlex, etc.
Estude desenvolvimento web, pesquise bastante e poste suas dúvidas aqui.
No fórum você vai encontrar muitos colegas que já passaram por estas situações antes e podem lhe ajudar.
Já q sabe programar Swing, já deve ter experiência boa com java e alguma IDE, se esta for o Eclipse melhor ainda.
Acho meio difícil falar de desenvolvimento web sem falar de Ajax. Este framework daí é da Google e vc programa em Java e ele gera o HTML e o JavaScrip pra vc.
Agora que a google se uniu ao eclipse as coisas ficarão mais lindas ainda.
Tenho algumas dúvidas com relação ao desempenho de aplicações usando AJAX, como GWT. O usuário quer utilizar a aplicação web como esta fosse uma aplicação Desktop, não quer aguardar a página carregar, etc… com AJAX isso não fica lento?
Pode ficar lento enquanto sua aplicação busca informações do banco para montar uma comboBox muito grande por exemplo, mas é o mesmo tempo que qualquer aplicação gastaria pra fazer a consulta ao banco. E em compensação você só irá gastar este tempo se o usuária solicitar tal açao. Você nao irá carregá-la no início e nem irá carregar o restante da página. No final, o ganho será maior. Só vc ver o google, entre outras páginas que utilizam Ajax.
Para ser sincero, acabei optando por fazer tudo na unha neste meu primeiro sistema web com Java. Achei melhor porque assim posso realmente entender como funcionam as coisas, que são bem diferentes das aplicações desktop. Quando TUDO estiver bem compreendido eu parto para frameworks. Talvez eu até acabe mexendo um pouco com o Mentawai, que achei até bem simples, mas por enquanto estou só no JSP/Servlet/Design Patterns mesmo…
Concordo que a camada de apresentação gasta muito tempo…
Estou estudando pelo Head First Servlets & JSP e estou achando o livro excelente!
A camada de apresentação é muito importante e tem que estar muito bem feita para suportar a evolução do site, mudanças de layout, etc.
As tags que o Mentawai oferece, mais sua facilidade para criar novas tags integradas ao framework, mais suas DynTags, são uma mão na roda na hora de fazer sua view.
Os problemas da camada de apresentação, no meu caso, são a falta de prática em HTML e Javascript.
Porém, acredito que mesmo as pessoas experientes, enfretam problemas bastante chatos. A pouco tempo enfrentei um problema de um código JavaScript que funciona no Firefox mas não funciona no IE.
As tags do Mentawai ajudam muito e são simples de utilizar. Utilizo elas, JSTL e agora estou usando DisplayTag o que faciltou mais ainda meu trabalho.
Outra coisa importante, é estruturar o layout e a usabilidade, isso é bastante complicado e requer experiência em sites Web.
[quote=fabiozoroastro]http://jairelton.com/downloads/dao.zip
Esse projeto acima é um sistema web bem simples, utilizando struts(jsp e servlets) + hibernate.
Alguem sabe como ultilizar checkbox no displayTag ??
estou precisando fazer uma tela de editar e deletar, e preciso que o usuario consiga pegar o id facilmente.
oq fazer?