comparando struts 1 y 2
DESCRIPTION
tipTRANSCRIPT
-
15/4/2015 ComparandoStruts1y2
https://struts.apache.org/docs/comparingstruts1and2.html 1/3
Inicio>Guas>Guademigracin>ComparacindeStruts1y2 BsquedaDeGoogle
ApacheStruts2Documentacin
ComparandoStruts1y2Editarpgina NavegarEspacial Aadirpgina AadirNoticias
Caracterstica Struts1 Struts2
ClasesAction
Struts1requiereclasesdeaccinparaextenderunaclasebaseabstracta.UnproblemacomnenStruts1eslaprogramacindelasclasesabstractasenvezdeinterfaces.
UnStruts2Accinpuedeimplementarunaaccininterfaz,juntoconotrasinterfacesparaquelosserviciosopcionalesypersonalizados.Struts2proporcionaunaclaseActionSupportdebaseparaimplementarinterfacesdeusocomn.Aunque,eslainterfazdeaccinnorequiere.CualquierobjetoPOJOconunejecutarlafirmasepuedeutilizarcomounobjetoActionStruts2.
EnhebradoModelo
Struts1accionessonnicosydebenserflujossegurosyaquenoslohabrunainstanciadeunaclaseparamanejartodaslaspeticionesdeesaaccin.LaestrategiasingletondeimponerrestriccionesaloquesepuedehacerconStruts1Accionesyrequiereuncuidadoespecialparadesarrollarse.Recursosdeaccindebenserflujossegurososincronizada.
ObjetosStruts2deaccinsecreaninstanciasparacadasolicitud,porloquenohayproblemasdehilodeseguridad.(Enlaprctica,contenedoresdeservletsgeneranmuchosobjetosdeusarytirarporsolicitud,yunobjetomsnoimponeunapenalizacinderendimientoolarecoleccindebasuraimpacto.)
ServletDependencia
Struts1accionestienendependenciasenlaAPIdeservletdesdeelHttpServletRequestyHttpServletResponsesepasaalaejecucindemtodocuandoseinvocaunaaccin.
Struts2accionesnoestnacopladosauncontenedor.MuyamenudoloscontextosservletserepresentancomosimplesMaps,permitiendoaccionesaensayarenformaaislada.Struts2accionesanpuedenaccederalasolicitudylarespuestaoriginal,siesnecesario.Sinembargo,otroselementosarquitectnicosreduciroeliminarlanecesidaddeaccederalaHttpServetRequestoHttpServletResponsedirectamente.
Comprobabilidad
UnobstculoimportanteparalaspruebasdeStruts1accionesesquelaejecucindemtodoexponelaAPIServlet.Unaextensindeterceros,StrutsTestCase,ofreceunconjuntodeobjetossimulacrodeStruts1.
Struts2accionespuedenserprobadosporcrearinstanciasdelaaccin,elestablecimientodepropiedadesymtodosdeinvocacin.Dependenciaapoyoinyeccintambinhacepruebasmssimple.
Larecoleccin
Struts1utilizaunobjetoActionFormparacapturarlaentrada.Comoacciones,todasActionFormsdebenextenderunaclasebase.DadoqueotrosJavaBeansnosepuedenutilizarcomoActionForms,losdesarrolladoresa
Struts2utilizalaspropiedadesdeaccincomopropiedadesdeentrada,loqueeliminalanecesidaddeunsegundoobjetodeentrada.Propiedadesdeentradapuedenserricostiposdeobjetosquepuedentenersuspropiaspropiedades.Laspropiedadesdeaccinsepuedeaccederdesdelapginawebatravsdelos
-
15/4/2015 ComparandoStruts1y2
https://struts.apache.org/docs/comparingstruts1and2.html 2/3
deentrada menudocreanclasesredundantesparacapturarlaentrada.DynaBeanspuedeutilizarcomoalternativaalacreacindeclasesActionFormconvencionales,pero,tambinenestecaso,losdesarrolladorespuedenRedescribiendoJavaBeansexistentes.
taglibs.Struts2tambinescompatibleconelpatrndeActionForm,ascomoobjetosdeformularioPOJOyPOJOacciones.Tiposdeobjetosricos,incluidoslosobjetosdenegocioodedominio,puedenserutilizadoscomoobjetosdeentrada/salida.LacaractersticaModelDrivensimplificareferenciastaglbaobjetosdeentradaPOJO.
ExpressionLanguage
Struts1integraconJSTL,porloqueutilizalaJSTLEL.ElPIEtienerecorridobsicogrficodeobjetos,perolarecopilacinrelativamentedbilysoportepropiedadindexada.
Struts2puedeutilizarJSTL,peroelmarcotambinescompatibleconunlenguajedeexpresinmspotenteyflexiblellamado"objetogrficodenotacindeidiomas"(OGNL).
Encuadernacinvaloresen
puntosdevista
Struts1utilizaelmecanismoestndardeJSPparavincularobjetosenelcontextodelapginadeacceso.
Struts2utilizaunatecnologa"ValueStack"paraquelostaglibspuedenaccederavaloressinacoplamientodevisinparaeltipodeobjetoqueestprestando.LaestrategiaValueStackpermitelareutilizacindepuntosdevistaatravsdeunagamadetiposquepuedentenerelmismonombredelapropiedad,perodiferentestiposdepropiedad.
Tipodeconversin
Struts1propiedadesActionFormsonusualmentetodoslosStrings.Struts1utilizaCommonsBeanUtilsparalaconversindetipos.Convertidoressonporclase,ynoesconfigurableporinstancia.
Struts2utilizaOGNLparalaconversindetipos.Elmarcoincluyeconvertidoresparatiposdeobjetosbsicosycomunesyprimitivas.
Validacin
Struts1soportalavalidacinmanualatravsdeunavalidacinmtodoenelActionForm,oatravsdeunaampliacindelaCommonsValidador.Lasclasespuedentenerdiferentescontextosdevalidacindelamismaclase,peronopuedecadenadevalidacionesensubobjetos.
Struts2soportalavalidacinmanualatravsdelavalidacinmtodoyelmarcoXWorkvalidacin.LavalidacinMarcoXWorkpermitiendoencadenarvalidacinensubpropiedadesutilizandolasvalidacionesdefinidasparaeltipodepropiedadesdeclaseyelcontextodevalidacin.
Controldelaejecucinde
Accin
Struts1soportaprocesadoresSolicitarseparados(ciclosdevida)paracadamdulo,perotodaslasaccionesenelmdulodebecompartirelmismociclodevida.
Struts2soportesquecreandiferentesciclosdevidasobreunabaseporaccinatravsdelinterceptordePilas.Pilaspersonalizadospuedensercreadosyutilizadoscondiferentesacciones,segnseanecesario.
VerTambinMattRaibleescribi(mediadosde2005)uninteresantedocumentotcnicodondecompardiversosframeworksweb.PuedeverelPDFaqu:
https://equinox.dev.java.net/frameworkcomparison/WebFrameworks.pdfhttp://www.virtuas.com/files/osljwf01.pdf
-
15/4/2015 ComparandoStruts1y2
https://struts.apache.org/docs/comparingstruts1and2.html 3/3
:Siguienteestrategiasdemigracin
GeneradoporCXFSiteExporter