| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/04/2004 10:53:34
|
Jair Rillo Junior
Moderador
![[Avatar]](/images/avatar/31b3b31a1c2f8a370206f111127c0dbd.jpg)
Membro desde: 29/04/2003 21:19:53
Mensagens: 2524
Localização: São Paulo / Campinas
Offline
|
quem acompanhou um pequeno topic aqui http://www.guj.com.br/forum/viewtopic.php?t=10827
sabe que eu estou no meio de um desenvolvimento usando Servlet/Velocity/HIbernate e pintou a dúvida de como fazer upload de um arquivo texto. O Amigo Daniel Destro disse que eu poderia estudar Struts (eu já tinha ouvido falar mas nunca tinha estudado) ou usar uma classe do grupo Jakarta. Eu pesquisei os dois e no caso eu usei a classe chamada FileUpload que fica bem simples fazer upload tanto para disco como apenas para memória. Mas mesmo assim eu comecei a estudar o struts e achei alguns pontos MUITO interessantes.
Pontos Positivos (claro que eu não estudei ele muito a fundo ainda):
Seu tratamento de erros em preenchimento de formulario é muito simples, comparado ao meio tradicional que é ficar testando manualmente e mostrando o erro na página manualmente.
Sua separação de camadas é muito show, pra quem nunca usou MVC model 2, com ele fica bastante simples de entender
Pontos negativos:
Quase tudo nele precisa gerar arquivos xml (como servlets), mas no caso do eclipse não achei nenhuma ferramenta que faz isso (para servlet eu uso o Lomboz), a unica que eu encontrei foi o easystruts, mas funciona só no eclipse 2.1.x, e atualmente estou usando o 3M7 e migrando para o 3M8. Existe algum outro plugin?
Agora esse é muito crítico. Quando você trabalha com Struts, você tem que usar suas taglibs, por exemplo,tem a taglib de html. Quando for criar um form usa-se html:form, e html:text, html:password, html:submit e assim vai. Qual o problem aqui? o problema que isso não da pra ser feito pelos webdesigner. Na empresa dividimos o máximo possível o designer do desenvolvimento server-side, onde os webdesigners usam o Dreamweaver. No caso do velocity, fica simples eles criarem a pagina e depois com pouco códigos eu coloco as VTL (quando necessário), e depois se precisar de alguma manutenção, eles podem abrir o arquivo .html no dreamweaver que nao irá estragar o designer.
No caso do struts não, pois se eles usam form name=".... irão ter que mudar para html:form... e assim o dreamweaver não irá reconhecer, e irá estragar todo o designer. Tudo isso levando em consideração as possíveis alterações (e essas sempre acontecem), pois os designers poderiam fazer usando html normal, e depois eu transformar para taglibs (eu encontrei uma ferramenta que faz isso, só não sei se funciona), mas o problema é quando pintasse uma alteração, por exemplo em um cadastro adicionar mais 3 campos?, ae ficaria uma bagunça total.
Mas acredito que tenha solução, pois muita gente usa, e essas pessoas não podem estar erradas, empresas grandes que tem wedesigners separado de programação usam com sucesso,e elas não querem perder produtividade, então acredito que eu e os membros da empresa não conseguimos enxergar ainda como solucionar esse problema, pois mesmo com as características boas que o Struts tem, esse lance de "quebrar" todo o html, seria muitíssimo ruim para nós, o que dificultaria o trabalho dos designers e assim diminuindo muito o desenvolvimento do projeto ao todo.
Alguém com experiência no caso poderia comentar algo a respeito.
Obrigado
|
Jair Rillo Junior
http://www.jairrillo.com/blog | Twitter | SCJA, SCJP, SCWCD, SCBCD, IBM SOA Associate |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/04/2004 12:58:44
|
douglasfs
JavaEvangelist
![[Avatar]](/images/avatar/dc6a6489640ca02b0d42dabeb8e46bb7.png)
Membro desde: 31/12/2002 17:50:02
Mensagens: 305
Localização: São Paulo / Brasil
Offline
|
ManchesteR wrote:Pontos negativos:
 Quase tudo nele precisa gerar arquivos xml (como servlets), mas no caso do eclipse não achei nenhuma ferramenta que faz isso (para servlet eu uso o Lomboz), a unica que eu encontrei foi o easystruts, mas funciona só no eclipse 2.1.x, e atualmente estou usando o 3M7 e migrando para o 3M8. Existe algum outro plugin?
Eu também trabalho com Struts utilizando o Eclipse, eu particularmente não gosto do EasyStruts, para gerar aquele XML chato (struts-config.xml) use o XDoclet (a tag é @struts - http://xdoclet.sourceforge.net/tags/apache-tags.html ) quando você baixa o XDoclet, ele vem com um exemplo de struts, o legal é você baixar o plugin JBossIDE para autocompletar as tags do Struts e também para facilitar a configuração da geração do struts-config.
Eu utilizei o JBossIDE para o Eclipse 2.1.x, mas eu me lembro que tem uma versão para o 3.0 M7
ManchesteR wrote:
 Agora esse é muito crítico. Quando você trabalha com Struts, você tem que usar suas taglibs, por exemplo,tem a taglib de html. Quando for criar um form usa-se html:form, e html:text, html:password, html:submit e assim vai. Qual o problem aqui? o problema que isso não da pra ser feito pelos webdesigner. Na empresa dividimos o máximo possível o designer do desenvolvimento server-side, onde os webdesigners usam o Dreamweaver. No caso do velocity, fica simples eles criarem a pagina e depois com pouco códigos eu coloco as VTL (quando necessário), e depois se precisar de alguma manutenção, eles podem abrir o arquivo .html no dreamweaver que nao irá estragar o designer.
No caso do struts não, pois se eles usam form name=".... irão ter que mudar para html:form... e assim o dreamweaver não irá reconhecer, e irá estragar todo o designer. Tudo isso levando em consideração as possíveis alterações (e essas sempre acontecem), pois os designers poderiam fazer usando html normal, e depois eu transformar para taglibs (eu encontrei uma ferramenta que faz isso, só não sei se funciona), mas o problema é quando pintasse uma alteração, por exemplo em um cadastro adicionar mais 3 campos?, ae ficaria uma bagunça total.
Mas acredito que tenha solução, pois muita gente usa, e essas pessoas não podem estar erradas, empresas grandes que tem wedesigners separado de programação usam com sucesso,e elas não querem perder produtividade, então acredito que eu e os membros da empresa não conseguimos enxergar ainda como solucionar esse problema, pois mesmo com as características boas que o Struts tem, esse lance de "quebrar" todo o html, seria muitíssimo ruim para nós, o que dificultaria o trabalho dos designers e assim diminuindo muito o desenvolvimento do projeto ao todo.
Realmente essa parte do Struts é um saco, aqui os web designers fazem a tela toda bonitinha e nós os programadores transformamos para o struts, eu acho isso uma droga pois eu perco um pouco a produtividade (não gosto de trabalhar com view).
Para transformar uma página html para um jsp+struts eu utilizo o struts console, ele te ajuda em uns 90% da conversão, geralmente ele faz besteira na hora de converter as imagens para as tags de imagem do struts.
O Lomboz até que ajuda um pouco, pois ele pode autocompletar as tags do struts.
Outra ponto negativo no struts é a díficil testabilidade das Actions, já que ela é presa a web, já tentei utilizar o struts test case, mas eu não gostei da ferramenta.
Para resolver esses problemas (principalmente das tags html do struts) eu estou testando o framework spring - http://www.springframework.org/ ele suporta como views JSP (pode ser com JSTL) , XSLT, Velocity e Freemarker (esse é meu preferido) ele vem com exemplos legais.
Para persistência, ele suporta o Hibernate, iBatis, JDBC puro, JDO.
Olha que legal essa parte :
Enquanto no struts eu tenho que colocar um campo texto assim :
No spring eu coloco assim :
Onde cliente é minha classe "Command" e nome é o atributo que eu desejo atribuir ao campo html.
Fácil para nós e os web designers não ?
Fora que ele é muito mais fácil de testar pelo JUnit, você pode configurar um arquivo xml para a web e um outro para fazer os testes.
|
SCJP 1.4, SCWCD 1.4, SCBCD 5.0 beta |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/04/2004 13:10:23
|
Jair Rillo Junior
Moderador
![[Avatar]](/images/avatar/31b3b31a1c2f8a370206f111127c0dbd.jpg)
Membro desde: 29/04/2003 21:19:53
Mensagens: 2524
Localização: São Paulo / Campinas
Offline
|
Hummmm
muito interessante esse spring, ele faz um bind com o Command e mantém as tags html.
Valeu pela dica Doulgas, com certeza iremos estudar esse framework, e quem sabe para um projeto futuro, já que o projeto atual já está sendo feito (e com sucesso) usando velocity apenas.
|
Jair Rillo Junior
http://www.jairrillo.com/blog | Twitter | SCJA, SCJP, SCWCD, SCBCD, IBM SOA Associate |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/04/2004 13:11:09
|
douglasfs
JavaEvangelist
![[Avatar]](/images/avatar/dc6a6489640ca02b0d42dabeb8e46bb7.png)
Membro desde: 31/12/2002 17:50:02
Mensagens: 305
Localização: São Paulo / Brasil
Offline
|
Só um detalhe :
Ele também tem que configurar xmls, mas eu estou escrevendo uma extensão para o XDoclet e templates Eclipse para suportar o Spring.
|
SCJP 1.4, SCWCD 1.4, SCBCD 5.0 beta |
|
|
 |
|
|
|
|