Beruflich Dokumente
Kultur Dokumente
ComparandoStruts1y2
Inicio>Guas>Guademigracin>ComparacindeStruts1y2
BsquedaDeGoogle
ApacheStruts2Documentacin
ComparandoStruts1y2
Editarpgina
Caracterstica
Struts1
NavegarEspacial
Aadirpgina
AadirNoticias
Struts2
UnStruts2Accinpuedeimplementarunaaccin
ClasesAction
Struts1requiereclasesdeaccinpara
extenderunaclasebaseabstracta.Un
problemacomnenStruts1esla
programacindelasclasesabstractas
envezdeinterfaces.
interfaz,juntoconotrasinterfacesparaquelosservicios
opcionalesypersonalizados.Struts2proporcionauna
claseActionSupportdebaseparaimplementarinterfaces
deusocomn.Aunque,eslainterfazdeaccinno
requiere.CualquierobjetoPOJOconunejecutarlafirma
sepuedeutilizarcomounobjetoActionStruts2.
Enhebrado
Modelo
Servlet
Dependencia
Struts1accionessonnicosydebenser
flujossegurosyaquenoslohabruna
instanciadeunaclaseparamanejar
todaslaspeticionesdeesaaccin.La
estrategiasingletondeimponer
restriccionesaloquesepuedehacer
conStruts1Accionesyrequiereun
cuidadoespecialparadesarrollarse.
Recursosdeaccindebenserflujos
segurososincronizada.
Struts1accionestienendependencias
enlaAPIdeservletdesdeel
HttpServletRequesty
HttpServletResponsesepasaala
ejecucindemtodocuandoseinvoca
unaaccin.
Comprobabilidad
Unobstculoimportanteparalas
pruebasdeStruts1accionesesquela
ejecucindemtodoexponelaAPI
Servlet.Unaextensindeterceros,
StrutsTestCase,ofreceunconjuntode
objetossimulacrodeStruts1.
Struts1utilizaunobjetoActionForm
paracapturarlaentrada.Como
acciones,todasActionFormsdeben
extenderunaclasebase.Dadoque
otrosJavaBeansnosepuedenutilizar
comoActionForms,losdesarrolladoresa
Larecoleccin
https://struts.apache.org/docs/comparingstruts1and2.html
ObjetosStruts2deaccinsecreaninstanciasparacada
solicitud,porloquenohayproblemasdehilode
seguridad.(Enlaprctica,contenedoresdeservlets
generanmuchosobjetosdeusarytirarporsolicitud,y
unobjetomsnoimponeunapenalizacinde
rendimientoolarecoleccindebasuraimpacto.)
Struts2accionesnoestnacopladosauncontenedor.
Muyamenudoloscontextosservletserepresentan
comosimplesMaps,permitiendoaccionesaensayaren
formaaislada.Struts2accionesanpuedenaccederala
solicitudylarespuestaoriginal,siesnecesario.Sin
embargo,otroselementosarquitectnicosreduciro
eliminarlanecesidaddeaccederalaHttpServetRequest
oHttpServletResponsedirectamente.
Struts2accionespuedenserprobadosporcrear
instanciasdelaaccin,elestablecimientode
propiedadesymtodosdeinvocacin.Dependencia
apoyoinyeccintambinhacepruebasmssimple.
Struts2utilizalaspropiedadesdeaccincomo
propiedadesdeentrada,loqueeliminalanecesidadde
unsegundoobjetodeentrada.Propiedadesdeentrada
puedenserricostiposdeobjetosquepuedentenersus
propiaspropiedades.Laspropiedadesdeaccinse
puedeaccederdesdelapginawebatravsdelos
1/3
15/4/2015
ComparandoStruts1y2
deentrada
menudocreanclasesredundantespara
capturarlaentrada.DynaBeanspuede
utilizarcomoalternativaalacreacinde
clasesActionFormconvencionales,pero,
tambinenestecaso,los
desarrolladorespuedenRedescribiendo
JavaBeansexistentes.
taglibs.Struts2tambinescompatibleconelpatrnde
ActionForm,ascomoobjetosdeformularioPOJOyPOJO
acciones.Tiposdeobjetosricos,incluidoslosobjetosde
negocioodedominio,puedenserutilizadoscomo
objetosdeentrada/salida.LacaractersticaModelDriven
simplificareferenciastaglbaobjetosdeentradaPOJO.
Struts1integraconJSTL,porloque
utilizalaJSTLEL.ElPIEtienerecorrido
bsicogrficodeobjetos,perola
recopilacinrelativamentedbily
soportepropiedadindexada.
Struts2puedeutilizarJSTL,peroelmarcotambines
compatibleconunlenguajedeexpresinmspotentey
flexiblellamado"objetogrficodenotacindeidiomas"
(OGNL).
Encuadernacin
valoresen
puntosdevista
Struts1utilizaelmecanismoestndar
deJSPparavincularobjetosenel
contextodelapginadeacceso.
Struts2utilizaunatecnologa"ValueStack"paraquelos
taglibspuedenaccederavaloressinacoplamientode
visinparaeltipodeobjetoqueestprestando.La
estrategiaValueStackpermitelareutilizacindepuntos
devistaatravsdeunagamadetiposquepuedentener
elmismonombredelapropiedad,perodiferentestipos
depropiedad.
Tipode
conversin
Struts1propiedadesActionFormson
usualmentetodoslosStrings.Struts1
utilizaCommonsBeanUtilsparala
conversindetipos.Convertidoresson
porclase,ynoesconfigurablepor
instancia.
Struts2utilizaOGNLparalaconversindetipos.El
marcoincluyeconvertidoresparatiposdeobjetos
bsicosycomunesyprimitivas.
Expression
Language
Struts1soportalavalidacinmanuala
travsdeunavalidacinmtodoenel
Validacin
Controldela
ejecucinde
Accin
ActionForm,oatravsdeuna
ampliacindelaCommonsValidador.
Lasclasespuedentenerdiferentes
contextosdevalidacindelamisma
clase,peronopuedecadenade
validacionesensubobjetos.
Struts1soportaprocesadoresSolicitar
separados(ciclosdevida)paracada
mdulo,perotodaslasaccionesenel
mdulodebecompartirelmismociclo
devida.
Struts2soportalavalidacinmanualatravsdela
validacinmtodoyelmarcoXWorkvalidacin.La
validacinMarcoXWorkpermitiendoencadenar
validacinensubpropiedadesutilizandolasvalidaciones
definidasparaeltipodepropiedadesdeclaseyel
contextodevalidacin.
Struts2soportesquecreandiferentesciclosdevida
sobreunabaseporaccinatravsdelinterceptorde
Pilas.Pilaspersonalizadospuedensercreadosy
utilizadoscondiferentesacciones,segnseanecesario.
VerTambin
MattRaibleescribi(mediadosde2005)uninteresantedocumentotcnicodondecompardiversos
frameworksweb.PuedeverelPDFaqu:
https://equinox.dev.java.net/frameworkcomparison/WebFrameworks.pdf
http://www.virtuas.com/files/osljwf01.pdf
https://struts.apache.org/docs/comparingstruts1and2.html
2/3
15/4/2015
ComparandoStruts1y2
:Siguienteestrategiasdemigracin
GeneradoporCXFSiteExporter
https://struts.apache.org/docs/comparingstruts1and2.html
3/3