JSF X Struts

7 respostas
fmeyer

Boa noite pessoal e saudaçoes.

Venho acompanhando em diversas revistas sobre java uma questão sobre:
*Qual tecnologia será melhor para trabalhar com o controller JSF ou Struts
*Para que esta começando, Vale a pena hoje se especializar em Struts
*Quanto custará (em termos de trabalho) portar um sistema Struts para JSF
*A apache software fundation diz que não vai abondonar o Struts, mas como usar uma implementação que não é a implementação de referencia

Achei interessante o assunto e costaria de po-lo em discussão, pois na revista
o feedback é maior do que no forum

[]'s e Bom java …

Fernando

7 Respostas

fcmartins

Qual tecnologia será melhor para trabalhar com o controller JSF ou Struts
Eu pretendo continuar com o Struts. Apesar do JSF ser padrão, não há suporte muito grande a ele ainda (exceto da Sun). Além disso o JSF é muito parecido com o Struts, então p/ quem vai aprender um framework MVC, eu acho melhor aprender o Struts e depois estudar o JSF.

Para que esta começando, Vale a pena hoje se especializar em Struts
Claro, estou sempre olhando as vagas de emprego e o Struts é disparado o mais requisitado. Mas isso não quer dizer que você não deva estudar outros frameworks, a paranóia é sua aliada.

Quanto custará (em termos de trabalho) portar um sistema Struts para JSF
Acho que não faz sentido portar o que funciona. Se é um sistema novo é o caso de você analisar qual alternativa é a melhor, justamente para evitar o custo de portar.

A apache software fundation diz que não vai abondonar o Struts, mas como usar uma implementação que não é a implementação de referencia
A tendência é o Struts se “fundir” com o JSF.

fmeyer

por experiencia 2 meses depois … respondida minha pergunta …
nem um nem outro. … use webwork … hehehe

Thiago_Senna

Que situação hein???

Em minha opinião, JSF só vai embalar quando as IDE’s derem um suporte melhor para o desenvolvimento do mesmo, e é exatamente o que elas estão buscando. Mas para JSF embalar também precisamos de algumas experiências desta tecnologia em produção.

Até onde sei, o JSF não se propões a ser um super framework para controler a camada de controle, e sim para criar componentes de interação com o usuário via brownser. Sendo que este é o foco do JSF, é provável que outros frameworks específicos para a camada de controle continuem a serem produzidos., e se integrem com o JSF. Desta forma, estariamos fazendo um sitema cinco estrelas, onde o framework mais bém preparado será escolhido para cada uma das responsabilidades do sistema.

Se o JSF se dar bém, outra coisa provavel é que até surjiria outros frameworks para ajudar no desenvolvimento com o JSF.

Considero que os profissionais sempre buscarão qualidade ao invés de produtividade… mas empresas infelizmente não. Precisamos ver no que esta história vai dar. Se a qualidade for o foco, minhas considerações ficam valendo.

Não acredito que estudar apenas Struts seja necessário. Talvez seja melhor mergulhar nos conceitos de um Framework utilizado na camada controle. Estude os patterns que são utilizados dentro do framework e estude como são as aplicações sem o framework. Descubra quais patterns são aplicados para resolver problemas na camada controle. Desta forma, você tera uma base para lidar com qualquer framework web.
Particularmente, não acho dificil aprender a trabalhar com frameworks como WebWork e Struts… a não ser que eles tenham aqueles recursos como DynamicSuperCredidatorValidatorForms… hehe… essas coisas só servem para confundir e enganar os programadores. Se limite as necessidades básicas, e em escrever códigos simples e fáceis de entender.

Sendo assim, pegue os frameworks que vc gosta, e tente escolher um para aprender os conceitos e conehce-lo melhor, e como o mercado hoje esta em cima do muro quanto ao JSF, procure acompanhar o desenvolvimento e a repercursão destas novas tecnologias.

Boa Sorte a Todos!
Abraços!

Sparcx86

Cara pra mim essa droga de JSF só vai embalar mesmo quando fizerem uma especificação decente. Onde já se viu, não pode dar resubmit em formulário? Aff, então quer dizer que se eu enviar um form uma vez é só uma e acabou? Olha que lixo:

[i]500 Internal Server Error

javax.servlet.jsp.JspException: Duplicate component ID ‘_id4’ found in view.

at com.sun.faces.taglib.jsf_core.ViewTag.doAfterBody(ViewTag.java:191)

at _teste._jspService(_teste.java:114)

[/teste.jsp]

at com.orionserver[Oracle Containers for J2EE 10g (10.1.3.1.0) ].http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)

at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:453)

at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:591)

at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:515)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:711)

at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)

at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.unprivileged_forward(ServletRequestDispatcher.java:259)

at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.access$100(ServletRequestDispatcher.java:50)

at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher$2.oc4jRun(ServletRequestDispatcher.java:193)

at oracle.oc4j.security.OC4JSecurity.doPrivileged(OC4JSecurity.java:283)

at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:198)

at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:346)

at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:152)

at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107)

at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:268)

at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:137)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:214)

at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:711)

at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)

at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:866)

at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:448)

at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:216)

at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:117)

at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:110)

at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)

at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:239)

at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:34)

at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:880)

at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)

at java.lang.Thread.run(Thread.java:595)[/i]

Por favor, isso é ridiculo… framework MVC que não dá resubmit? Putz, pior que vc vai na internet e NINGUÉM, NINGUÉM MESMO te dá uma resposta decente pra esse lixo. É por isso que nego não perde o mito de que Java é dificil. Nâo é dificil programar em Java mas quando dá pau senta e chora porque esse tipo de erro leva horas pra arrumar e quando arruma. AFF :roll:

Sparcx86

Ainda prefiro o Struts. O JSF tem idéias interessantes mas ainda não está maduro. Um exemplo que todo mundo já teve é o famoso javax.servlet.jsp.JspException: Duplicate component ID found in view.
AFinal, ainda vai demorar pra Sun soltar algo sem dar pau tão óbvio.

A

Cara trabalho com jsf a mais de 2 anos, é muito bom e o desenvolvimento é muito rápido e é ridículo vocês falarem que um framework deste tamanho não aceita resubmit.

W
Criado 8 de março de 2005
Ultima resposta 30 de jan. de 2008
Respostas 7
Participantes 6