Sempre trabalhei com a arquitetura MVC ( Struts ) e na camada view uso JSP + EL, estou estudando webwork por curiosidade própria, e vi que ele faz uso do freemarker, implementei alguns exemplos mas não vi nenhuma vantagem, ele faz o mesmo que o jsp + EL faz, gostaria de um motivo forte para usar esses frameworks de view, já que visam tanto a produtividade.
oi daniel
antigamente velocity e freemarker eram tremendamente superiores ao JSP pois não havia EL (quando não havia JSTL então, era incomparavel).
Hoje em dia tem o EL, e tem ate o ELResolver que da para voce customizar como parsear a expression language.
Mesmo assim, dado um List, nao podemos pegar o tamanho de uma lista com ${x.size} nem o ultimo elemento com ${x.get(x.size - 1)}, que é facilmente feito com Velocity ou freemarker (obviamente no JSP podemos criar .tags, usar fn:length, etc, mas não fica tao simples e direto). Algumas pessoas argumentam que escrever ${x.get(x.size - 1)} é muita logica dentro da camada de visualização.
Ja que hoje em dia o JSP+EL nu e cru é “quase tao bom” (contestavel) como Velocity e Freemarker, o pessoal acaba preferindo ficar com o padrão.
Há… entendi, é realmente com ( jsp + el + jstl ) não vi vantagem em usar framework de view.
Me diz uma coisa Paulo eu sempre usei Struts 1.x , e acho que ele da conta do serviço, vc acha que o mercado vai ou esta adotando outro framework mvc para novos projetos ?
Ouvi falar tão bem do webwork que ele é mais facil para implementar conjuntos de testes pois não depende da interface de servles como o struts…etc…
O struts 2 é baseado no webwork ?
Abs.
Ola Daniel
Os frameworks baseados em action estao muito divididos no mercado (felizmente ou infelizmente?). Existem varias opcoes muito famosas: spring mvc, struts 2 (que adotou muita coisa do webwork), etc. Eu sou suspeito pra falar, mas diria pra vocer dar uma olhada no www.vraptor.com.br
abracos
apesar de certa inexperiencia no assunto acho que da pra eu dar meu pitaco… =p
eu nunca vi o velocity, apenas o freemarker, mais também não vi grande diferença, estava mais mesmo pensando no que o Paulo falo das listas, eu acho que para a enorme maioria destes casos um c:forEach ou então o display tags usado junto com o framework MVC que você estiver usando (no caso struts) resolve bem…
ja ouvi falar muito bem do vraptor também, quanto a produtividade que ele proporciona, mais no que se refere a mercado, a pouco tempo atras estava vendo vagas nos principais sites de emprego (catho, netcarreiras, apinfo, infojobs…) e infelizmente é rara alguma vaga pedindo conhecimentos desse framework… a maioria ainda é struts, jsf ou ambos…
daniel, eu te aconselharia dar umas olhadas no struts 2 sim, tem umas coisas legais nele…
É bom conhecer bastante opção de frameworks web. Uma vez que você estende a idéia é fácil aprender novos e até mesmo iniciar um novo projeto com framework web totalmente desconhecido. É preciso apenas tomar cuidado se o framework escolhido atende de fato sua necessidade.
Eu estou juntando um pedaço aqui e ali para chegar num pacote que atenda um aplicação web desde a view até o banco… gosto de usar (ajax (JQuery)+ jsp el jstl + Struts 1.3 + spring + hibernate ), o displaytag é muito legal, porem peca na hora de se paginar com ajax, achei uma solução que seria usar a taglib ajaxtags, mas entretando ela requer uma infinidade de arquivos .js para funcionar, optei por um plugin JQuery, JGrid que é muito bom além de ser 100% javascript e rodar no cliente, trabalha com json, xml e outros…
http://www.trirand.com/blog/
Vou dar uma olhada no vRaptor.
Valews
Eu trabalhei muito com struts 1x. Ele sempre foi muito bom, até hoje acho o melhor framework daquele tempo. Mas os tempos mudam, e com essa evolução novos frameworks surgiram, assim como o próprio struts 2 mudou completamente o que era no 1x (lembrando que struts 2 é basicamente o wwork).
Acompanhei várias equipes usando JSF, e achei muito improdutivo. Muita coisa para fazer simples ações. Então quando resolvi tocar um projeto pessoal de um software de gestão publica, optei por migrar de struts 1x para vraptor3. Eu já havia feito meu site pessoal em vraptor 2.6, e gostava muito.
Enfim, o que mais gosto no vraptor é o fato de tudo ser muito flexível. Você pode escrever o método com ou sem parametros, pode injetar o que você quiser, e pode alterar o comportamento do próprio framework escrevendo simples classes Java. A coisa é muito boa, por isso acabo sempre indicando o vraptor. Lembro que criar uma action no struts era necessário fazer muitas coisas.
Vale a pena você dar uma olhada no site que tem uma documentação boa e ver se ele pode suprir tuas necessidades.
Abraços
To quebrando a cabeça aqui no vRaptor, instalei o projeto blank, fiz o deploy no tomcat 6.0,
e quando acesso o projeto ele aparece a pagina em branco com a frase " It works! ",
mas onde configuro o fluxo ???
Tem a classe IndexController com a anotação @Resource e no metodo " public void index() " a anotação @Path("/"), e o arquivo jsp fica em /WEB-INF/jsp/index/index.jsp.
onde ta configurado que a requisição ao path " / " tem que ir para " /WEB-INF/jsp/index/index.jsp " ?
valews.
daniel-6-strings, dê uma olhada na documentação do vraptor lá no site. Há bem explicado como fazer: http://vraptor.caelum.com.br/documentacao/
Você pode tirar as dúvidas aqui: http://guj.com.br/forums/show/23.java
Por convenção o vraptor3 faz redirecionamento conforme o nome da classe (sem sufixo controller) e redireciona para /WEB-INF/jsp/nome-da-classe/metodo-chamado.jsp. Isso você entenderá nos docs. O URL / é indicado na anotação @Path.
Entendi…, já estou conseguindo fazer algo com o vRaptor, e que eu não coloco a pasta jsp dentro de WEB-INF coloco no WebRoot …
Outra duvida que na doc não achei como injeto um bean nesse controller, criei um " applicationContext.xml " na raiz do classpath e ele carrega meus beans, criei um atributo no controller e um setter, mas não injeta, esta null, criei um bean do controller e setei sua propriedade e também não injeta.
valews
injetou mas tive que colocar a anotação " @Autowired " no atributo a ser injetado do Controller.