Transcript
  • 14/4/2015 IntroduccinalaWebFrameworkStrutsNetBeansIDETutorial

    https://netbeans.org/kb/docs/web/quickstartwebappsstruts.html 1/13

    NetBeansIDE PlataformaNetBeans Empresa Plugins Docsysoporte Comunidad Search

    INICIO/Docsysoporte

    IntroduccinalMarcoStrutsWebEstedocumentolellevaatravsdelosaspectosbsicosdelusodeNetBeansIDEparadesarrollaraplicacioneswebusandoelframeworkwebStruts.StrutsesunframeworkdecdigoabiertoqueseextiendelaAPIJavaServletyempleaunModelo,Vista,Controlador(MVC).Selepermitecrearaplicacioneswebmantenibles,extensiblesyflexiblesbasadasentecnologasestndar,comolaspginasJSP,JavaBeans,paquetesderecursos,yXML.

    EstetutorialteenseacmocrearunasencillaaplicacinMVCquemuestraunapginadeiniciodesesinydevuelveunapginadexitoalpresentardatosquepasanlavalidacin.SeaprendevariasfuncionesbsicasproporcionadasporStruts,ascomocmoestascaractersticasseimplementanutilizandoelIDE.Enconcreto,seutilizanetiquetasdeStrutsenpginasJSP,mantenerlosdatosdelusuarioconunStrutsActionFormfrijol,yaplicarlalgicadereenvoutilizandounStrutsAccinobjeto.Adems,semuestracmoimplementarlavalidacinsimpleasuaplicacin,incluyendolacreacindemensajedeadvertenciaparaunintentodeiniciodesesinfallido.

    ParaunaintroduccinmsdegranofinoaStruts,vaseCmofuncionaStruts?enlapginaoficialStrutssitioweb.Tambin,hacerusodelaIDEdeJavadocndiceBsqueda(Ayuda>JavadocndiceBsqueda)paraverelAPIStrutsFramework,queseempaquetaconlasbibliotecasdeStruts.

    Contenido

    Visingeneraldeluso

    ConfiguracindeunaaplicacinStruts

    CreacindepginasJSP

    Creacindeunapginadeentrada

    Creacindeunapginadexito

    CreacindeunActionFormFrijol

    Creacindeunaaccindeclase

    ValidacinImplementacin

    AccesoalahabadedatosypreparacindelaCondicinForwarding

    Configuracindeunmensajedeerror

    AdicinadelanteEntradasastrutsconfig.xml

    Configuracinyejecucindelaaplicacin

    Configuracindelapginadebienvenida

    Colocacindeunahojadeestilos

    Ejecutarlaaplicacin

    VerTambin

    Paracompletarestetutorial,necesitaelsiguientesoftwareyrecursos.

    Softwareoderecursos Senecesitaunaversin

    NetBeansIDE 7.2,7.3,7.4,8.0,JavaEE

    JavaDevelopmentKit(JDK) 7o8

    ServidorGlassFish o Tomcatcontenedordeservlets

    Abrir3.xSourceEdition4.0oversin7.xo8.x

    Notas:

    LainstalacindeJavalepermite,opcionalmente,instalarelservidorGlassFishyelcontenedordeservletsApacheTomcat.Debeinstalarunodeestos(oregistrarunservidordiferenteenelIDE)paratrabajaratravsdeestetutorial.

    Siustednecesitacompararsuproyectoconunasolucindetrabajo,sepuededescargarlaaplicacindeejemplo.

    VisingeneraldelusoCuandoseutilizaStruts,elmarcoqueproporcionaunservletcontrolador,ActionServlet,quesedefineenlasbibliotecasdeStrutsqueseincluyenenelIDE,yqueseregistraautomticamenteenelweb.xmldescriptordedesplieguecomosemuestraacontinuacin.Elservletcontroladorutilizaunstrutsconfig.xmlarchivodecorresponderlaspeticionesentrantesaStrutsAccinobjetos,ycrearinstanciasdecualquierActionFormobjetosasociadosalaaccinparaalmacenartemporalmentelosdatosdelformulario.LaAccinobjetoprocesalassolicitudesutilizandosuejecucinmtodo,alhacerusodelosdatosalmacenadosenformadegrano.Unavezquelaaccinobjetoprocesaunasolicitud,quealmacenatodoslosdatosnuevos(esdecir,enformadegrano,oenungranoderesultadoporseparado),yenvalosresultadosalavistaapropiada.

    Entrenamiento

    Apoyo

    OracleOfrendaHerramientasdedesarrollodeApoyoparaNetBeansIDE

    DocumentacinGeneraldeDesarrollodeJavaHerramientasyServiciosExternosAplicacionesJavaGUIDesarrolloWebJavaEEyJavaServiciosWebAplicacionesPlataformaNetBeans(RCP)yMdulodeDesarrolloPHPyHTML5AplicacionesC/AplicacionesC++AplicacionesMviles

    AplicacionesdeejemploDemosyScreencasts

    MsPreguntasfrecuentesContribuirDocumentacin!Docsparaversionesanteriores

    Elijaidiomadelapgina

    ProgramacinJava

    Textooriginal

    JavaProgrammingLanguage

    Sugiereunatraduccinmejor

  • 14/4/2015 IntroduccinalaWebFrameworkStrutsNetBeansIDETutorial

    https://netbeans.org/kb/docs/web/quickstartwebappsstruts.html 2/13

    DesarrollodeunaaplicacinStrutsessimilaraldesarrollodecualquierotrotipodeaplicacinwebenNetBeansIDE.Sinembargo,secomplementaneldesarrollodesukitdeherramientaswebaprovechandoelapoyoStrutsproporcionadaporelIDE.Porejemplo,utilizalasplantillasenelIDEparacrearStrutsAccinobjetosyActionFormfrijoles.Trassucreacin,elIDEregistraautomticamenteestasclasesenelstrutsconfig.xmlarchivoylepermiteextenderestearchivomuyfcilmenteutilizandoloselementosdelmenenelmendelbotnderechodelEditordecdigofuente.DebidoaquemuchasaplicacioneswebutilizanpginasJSPparalavista,StrutstambinproporcionabibliotecasdeetiquetaspersonalizadasquefacilitanlainteraccinconlosformulariosHTML.DentroEditorFuentedelIDE,puedeinvocarlafinalizacindecdigoyapoyoJavadocqueteayudaatrabajardeformaeficienteconestasbibliotecas.

    Lospasossiguientesmuestrancmocrearunsencilloformularioquerecogelosdatosdelusuario,realizalavalidacinsencilla,yenvalosdatosenunapginadexito.

    ConfiguracindeunaaplicacinStrutsEnelIDE,unaaplicacinStrutsnoesmsqueunaaplicacinwebnormalacompaadodelasbibliotecasyarchivosdeconfiguracindeStruts.CrearunaaplicacinStrutsenlamismaformaquesecreacualquierotraaplicacinwebenelIDEUsandoelnuevoAsistenteparaaplicacionesweb,conelpasoadicionaldeindicarquedeseaquelasbibliotecasyarchivosdeconfiguracindeStrutsparaserincluidosenlaaplicacin.

    1. SeleccioneArchivo>Nuevoproyecto(Ctrl+Maysculas+NMaysNenMac)enelmenprincipal.SeleccioneJavaWebenlalistadecategorasy,acontinuacin,seleccioneAplicacinWebenlalistadeproyectos.HagaclicenSiguiente.

    2. EnelpanelNombreyubicacin,introduzcaMyStrutsAppporNombredelproyectoyhagaclicenSiguiente.

    3. EnelpanelServidoryConfiguracin,seleccioneelservidoralquedeseaimplementarsuaplicacin.SlolosservidoresqueestnregistradosconelIDEseenumeran.(Pararegistrarunservidor,hagaclicenAgregarjuntoalalistadesplegableServidor.)Adems,tengaencuentaquelarutadecontextoparasuaplicacinimplementadaseconvierte/MyStrutsApp.HagaclicenSiguiente.

    4. SeleccioneStrutsenelpanelMarcos.

    Paraefectosdeestetutorial,nocambieningunodelosvaloresdeconfiguracinenlaregininferiordeestepanel.Elasistentemuestralassiguientesopcionesdeconfiguracin.

    AccinServletNombre:ElnombredelservletaccinStrutsutilizadoenlaaplicacin.Elweb.xmldescriptordedesplieguecontieneunaentradaparaelservletaccinyespecificalosparmetrosapropiadosStrutsespecfica,comolarutadeaccesoalaclaseservletdentrodelabibliotecaStrutsyalstrutsconfig.xmlarchivodeconfiguracindelaaplicacin.

  • 14/4/2015 IntroduccinalaWebFrameworkStrutsNetBeansIDETutorial

    https://netbeans.org/kb/docs/web/quickstartwebappsstruts.html 3/13

    AccinPatrndeURL:EspecificalospatronesdelassolicitudesdeentradaqueseasignanalcontroladoraccinStruts.Estogeneraunaentradadeasignacineneldescriptordedespliegue.Pordefecto,sloel*.dopatrnseasigna.

    RecursosdeAplicacin:permiteespecificarelpaquetederecursosquesernutilizadosenelstrutsconfig.xmlarchivoparalocalizarmensajes.Pordefecto,esteescom.myapp.struts.ApplicationResource.

    AadirStrutsTLDs:lepermitegenerardescriptoresbibliotecadecdigosparalasbibliotecasdeetiquetasStruts.UndescriptordelabibliotecaesundocumentoXMLquecontieneinformacinadicionalacercadelatotalidaddelabibliotecadeetiquetas,ascomocadaetiquetaindividual.Engeneralestonoesnecesario,porquesepuedehacerreferenciaalosURIenlneaenlugardearchivosTLDlocales.

    5. HagaclicenFinalizar.ElIDEcrealacarpetadelproyectoenelsistemadearchivos.AligualqueconcualquieraplicacinwebenelIDE,lacarpetadelproyectocontienetodaslasfuentesylosmetadatosdelproyectodelIDE,comoelscriptdeconstruccinAnt.Sinembargo,suaplicacinwebademstienetodaslasbibliotecasdeStrutsensurutadeclase.Noslosonelclasspathdelaaplicacin,sinoqueseincluyenenelproyectoysernempaquetadosconlmstarde,cuandosegeneraelproyecto.

    ElproyectoseabreenelIDE.LaventanadeProyectoseselprincipalpuntodeentradaasusfuentesdelproyecto.Muestraunavistalgicadeloscontenidosimportantesdelproyecto.Porejemplo,siseexpandevariosnodosdentrodelnuevoproyecto,puedeaparecercomosigue:

    Nota:UtilicelaventanaArchivos(Ventana>Archivos)paravertodosloscontenidosdesuproyectoenunavistabasadaendirectorios.

    LosarchivosdeconfiguracinespecficosdeStruts,ascomodescriptordedesplieguedelaaplicacin,estnconvenientementeubicadosdentrodelacarpetadearchivosdeconfiguracin.Abraeldescriptordedespliegue(dobleclicenelarchivoweb.xmlnododelarchivoparaquemostraraenelEditordecdigofuente).Conelfindemanejarelprocesamientodepuntales,seproporcionaunmapeoparaelservletcontroladorStruts.

    accin

    org.apache.struts.action.ActionServlet

    config

    /WEBINF/strutsconfig.xml

    debug

    2

    detalle

  • 14/4/2015 IntroduccinalaWebFrameworkStrutsNetBeansIDETutorial

    https://netbeans.org/kb/docs/web/quickstartwebappsstruts.html 4/13

    2

    2

    accin

    *.Hacer

    Porencima,elcontroladorservletStrutssedenominaaccinysedefineenlabibliotecaStruts(org.apache.struts.action.ActionServlet).Sefijaparamanejartodaslassolicitudesquesatisfaganel*.domapeo.Adems,losparmetrosdeinicializacindelservletseespecificanmedianteelstrutsconfig.xmlarchivo,tambincontenidasenelWEBINFcarpeta.

    CreacindepginasJSPComienceporlacreacindedospginasJSPparalaaplicacin.Laprimeramuestraunformulario.Lasegundaeslavistadevuelvecuandoinicialasesincorrectamente.

    Creacindeunapginadeentrada

    Creacindeunapginadexito

    Creacindeunapginadeentrada

    1. HagaclicconelMyStrutsAppnododelproyecto,elijaNuevo>JSP,yelnombredelnuevoarchivodeiniciodesesin.HagaclicenFinalizar.Ellogin.jsparchivoseabreenelEditordecdigofuente.

    2. EnelEditordecdigofuente,cambiarelcontenidodeamboselyetiquetas(oetiquetas,dependiendodelaversinIDEqueestutilizando)alFormulariodeacceso.

    3. Aadirlasdosdirectivastaglibsiguientesalapartesuperiordelarchivo:

    MuchasaplicacioneswebutilizanpginasJSPparavisitasenelparadigmaMVC,StrutsloproporcionabibliotecasdeetiquetaspersonalizadasquefacilitanlainteraccinconlosformulariosHTML.EstossepuedenaplicarfcilmenteaunarchivoJSPconelapoyodelaIDEparalafinalizacindecdigo.AlescribirenelEditordecdigofuente,elIDEproporcionaautocompletadodecdigoparalasetiquetasdeStruts,ascomoelJavadocStruts.TambinpuedeinvocarlafinalizacindecdigomanualmentepulsandoCtrlEspacio:

    Eltaglibfrijolproporcionanumerosasetiquetasquesontilesalasociarunfrijolforma(esdecir,unActionFormfrijol)conlosdatosrecogidosenelformulario.Eltaglibhtmlofreceunainterfazentrelavistayotroscomponentesnecesariosparaunaaplicacinweb.Porejemplo,pordebajodeustedreemplazarhtmlcomnformularioetiquetasconStruts'etiquetas.Unodelosbeneficiosqueestoproporcionaesquehacequeelservidorparalocalizarocrearunobjetodefrijolquesecorrespondeconelvalorprevistohtml:form'saccinelemento.

    4. Pordebajodelos(o)etiquetas,agregueelsiguiente:

  • 14/4/2015 IntroduccinalaWebFrameworkStrutsNetBeansIDETutorial

    https://netbeans.org/kb/docs/web/quickstartwebappsstruts.html 5/13

    CuandoterminedeescribirenelEditordecdigofuente,sepuedeponerenordenelcdigohaciendoclicderechoyseleccionandoFormat(AltShiftF).

    5. EnlaPaleta(Ventana>Paleta)enlareginderechadelIDE,arrastreunelementodelatabladelacategoradeHTMLaunpuntojustoencimadelalnea.ElcuadrodedilogoInsertartabla.Establezcalasfilasde3,columnasde2,ydejarelrestodeajustesen0.Msadelanteeneltutorial,adjuntarunahojadeestilosparaafectaralapresentacindelastablas.HagaclicenAceptary,acontinuacin,opcionalmente,reformatearelcdigo(AltShiftF).Laformaenlogin.jspahorasevedelasiguientemanera:

    Nota:Puedeeliminarelfiladelatabla,yaquenoseutilizaenestetutorial.

    6. Enlaprimerafiladelatabla,introduzcalossiguientes(cambiosennegrita):

    Introduzcasunombre:

    7. Enlasegundafiladelatabla,introduzcalossiguientes(cambiosennegrita):

    Introduzcasudireccindecorreoelectrnico:

  • 14/4/2015 IntroduccinalaWebFrameworkStrutsNetBeansIDETutorial

    https://netbeans.org/kb/docs/web/quickstartwebappsstruts.html 6/13

    Elhtml:textoelementopermiteunirloscamposdeentradadelaformaconpropiedadesenformadefrijolquesecrearenelsiguientepaso.As,porejemplo,elvalordelapropiedaddebecoincidirconuncampodeclaradoenelfrijolformaasociadaconesteformulario.

    8. Muevaelelementoenlasegundacolumnadelatercerafiladelatabla,porloquelatercerafiladelatablaaparececomosigue(cambiosennegrita):

    Enestaetapa,elformulariodeaccesodebeversedelasiguientemanera:

    Introduzcasunombre:

    Introduzcasudireccindecorreoelectrnico:

    Creacindeunapginadexito

    1. HagaclicconelMyStrutsAppnododelproyecto,elijaNuevo>JSP,yelnombredelarchivonuevoxito.EnelcampoCarpeta,hagaclicenelbotnExaminaryseleccioneadyacenteWEBINFdesdeeldilogoqueaparece.HagaclicenSeleccionarcarpetaparaentrarWEBINFenelcampoCarpeta.TodoslosarchivoscontenidosenlacarpetaWEBINFnosondirectamenteaccesiblesalassolicitudesdelcliente.Paraquesuccess.jspserrepresentadaadecuadamente,debecontenerlosdatosprocesados.HagaclicenFinalizar.

    2. EnelEditordecdigofuente,cambiarelcontenidodelapginaqueacabadecrearalosiguiente:

    LoginSuccess

    Enhorabuena!

    Hasiniciadosesincorrectamente.

    Sunombrees:.

    Sudireccindecorreoelectrnicoes:.

    3. Aadiruntaglibfrijoldirectivaalprincipiodelarchivo:

    4. AgregueelsiguienteEtiquetas(cambiosennegrita):

    Sunombrees:.

    Sudireccindecorreoelectrnicoes:.

    Alempleareletiquetas,sehaceusodelataglibfrijolparalocalizarelActionFormfrijolqueestapuntodecrearymostrarlosdatosdeusuarioguardadospornombreycorreoelectrnico.

  • 14/4/2015 IntroduccinalaWebFrameworkStrutsNetBeansIDETutorial

    https://netbeans.org/kb/docs/web/quickstartwebappsstruts.html 7/13

    CreacindeunActionFormFrijolUnStrutsActionFormfrijolseutilizaparamantenerlosdatosentrelaspeticiones.Porejemplo,siunusuarioenvaunformulario,losdatossealmacenantemporalmenteenformadegranoparaquecualquierasepuedevuelveamostrarenlapginadelformulario(silosdatosestnenunformatonovlidoosiiniciodesesinfalla)ovisualizaenunxitodeiniciodesesinpgina(silosdatossuperalavalidacin).

    1. HagaclicconelMyStrutsAppnododelproyectoyseleccioneNuevo>Otro.EnCategoraselegirStruts,acontinuacin,enTiposdearchivoeligenStrutsActionFormBean.HagaclicenSiguiente.

    2. EscribaLoginFormparaelnombredelaclase.Acontinuacin,seleccionecom.myapp.strutsenlalistadesplegabledelpaqueteyhagaclicenFinalizar.ElIDEcreaelLoginFormfrijolyloabreenelEditordecdigofuente.Pordefecto,elIDEproporcionaconunacadenallamadonombreyunintllamadonmero.Amboscampostienenmtodosdeaccesodefinidosparaellos.Adems,elIDEagregaunadeclaracindefrijolalastrutsconfig.xmlarchivo.Siabreelstrutsconfig.xmlarchivoenelEditordecdigofuente,sepuedeverlasiguientedeclaracin,quefueaadidoporelasistente:

    ElIDEproporcionaapoyoalanavegacinenelstrutsconfig.xmlarchivo.MantengapresionadalateclaCtrlycolocarelratnsobrelaLoginFormnombredeclasecompletodelfrijol.Elnombreseconvierteenunvnculo,loquelepermitenavegardirectamentealaclaseenelEditordecdigofuente:

    3. EnelLoginFormfrijolenelEditordecdigofuente,crearcamposymtodosdeaccesoqueseacompaanquecorrespondenalosnombresdeycorreoelectrnicocamposdeentradadetextoquecreenlogin.jsp.DebidoaqueelnombreyasehacreadoenelLoginFormesqueleto,slotienequeaplicardecorreoelectrnico.Agreguelasiguientedeclaracinbajonombre(cambiosennegrita):

    privateStringnombre

    emailprivateString

    Paracrearmtodosdeacceso,coloqueelcursorsobreelcorreoelectrnicoypulseAltInsert.

    SeleccioneGetterySetter,luegoeneldilogoqueaparece,seleccioneemail:StringyhagaclicenGenerar.Mtodosdeaccesosegeneranparaelcorreoelectrnicodecampo.

    Nota:Puedeeliminarlosmtodosdedeclaracinydedescriptordeaccesoparaelnmero,yaquenoseutilizaenestetutorial.

    CreacindeunaaccindeclaseLaAccinclasecontienelalgicadenegociodelaaplicacin.Cuandoserecibelosdatosdelformulario,eslaejecucindeunmtododeaccinobjetoqueprocesalosdatosydeterminaqueverparareenviarlosdatosprocesadosa.DebidoalaaccindeclaseesparteintegraldelmarcodetrabajoStruts,NetBeansIDEproporcionaunasistente.

    1. EnlaventanaProyectos,hagaclicenelMyStrutsAppnododelproyectoyseleccioneNuevo>Otro.ApartirdelacategoradeStrutselegirStrutsAccinyhagaclicenSiguiente.

    2. EnelpanelNombreyubicacin,cambieelnombreaLoginAction.

  • 14/4/2015 IntroduccinalaWebFrameworkStrutsNetBeansIDETutorial

    https://netbeans.org/kb/docs/web/quickstartwebappsstruts.html 8/13

    3. Seleccionecom.myapp.strutsenlalistadesplegablepaquete.

    4. Tipo/EntrarenCaminoAccin.Estevalordebecoincidirconelvalorestablecidoparalaaccinatributodelosetiquetasenlogin.jsp.Asegresedequelosajustesaparecencomoenlasiguienteimagen,hagaclicenSiguiente.

    5. Eneltercerpasodelasistente,seledalaoportunidaddeasociarlaaccindeclaseconunaformadegrano.ObservequeelLoginFormfrijolcreanteriormentesemuestracomounaopcinparabeanActionFormNombre.Realicelossiguientesajustesenelpanel:

    Eliminarlabarranormalparaelcampodeentradaderecursos

    EstablecerAlcancedeSolicitud(SesineselalcanceconfiguracinpredeterminadaenStruts.)

    DesactivelaopcinValidarbeanActionForm

    HagaclicenFinalizar.ElLoginActionsegeneralaclase,yelarchivoseabreenelEditordecdigofuente.Tambintengaencuentaquelasiguienteaccinseaadiralastrutsconfig.xmlarchivo:

    Losnombresyalcanceatributosseaplicanalaformadefrijolqueseasociaconlaaccin.Especficamente,cuandocoincideconunapeticindeentrada/login,elmarcodetrabajoStrutsinstanciaautomticamenteunLoginFormobjetoylollenaconlosdatosdelformulariosehaenviadoenlasolicitud.Elvalorpordefectodevalidateseestableceenverdadero.Estoledicealmarcoparallamaralvalidarelmtododelaformadegrano.Hadeseleccionadoestaopcinenelasistentesinembargodecdigoamano,yaqueselavalidacinsencillaenelsiguientepaso,quenorequierelavalidacindelmtodo.

    ValidacinImplementacinEnelEditordecdigofuente,navegaratravsdelaLoginActionclaseymiraralejecutarelmtodo:

    ActionForwardpblicoEjecutar(ActionMappingmapeo,formaActionForm,

    HttpServletRequestrequest,HttpServletResponserespuesta)

    throwsException{

    volvermapping.findForward(XITO)

    }

    NoteladefinicindeXITO,situadodebajodelaLoginActiondeclaracindelaclase:

    XITOprivadostaticfinalString="xito"

    Actualmente,lamapping.findForwardmtodoseestableceenformaincondicionalhaciaadelantecualquiersolicitudparaunavistadesalidallamadoxito.Estonoesrealmentedeseabledesearealizarprimerounaespeciedevalidacindelosdatosdeentradaparadeterminarsisedebeenviarelxitodevista,ocualquierpuntodevistadiferente.

    AccesoalahabadedatosypreparacindelaCondicinForwarding

    Configuracindeunmensajedeerror

    AccesoalahabadedatosypreparacindelaCondicinForwarding

    1. Escribaelsiguientecdigoenelcuerpodelaejecucindemtodo:

  • 14/4/2015 IntroduccinalaWebFrameworkStrutsNetBeansIDETutorial

    https://netbeans.org/kb/docs/web/quickstartwebappsstruts.html 9/13

    //Datosdeusuarioextracto

    LoginFormFormBean=forma(LoginForm)

    Stringname=formBean.getName()

    Cadenaemail=formBean.getEmail()

    Parapoderutilizarlosdatosdelformulariodeentrada,ustednecesitatomarejecutar'sActionFormargumentoyproyectarlocomoLoginForm,acontinuacin,aplicarlosmtodosgetterquecreanteriormente.

    2. Escribaelsiguienteclusulacondicionalpararealizarlavalidacindelosdatosdeentrada:

    //Realizarlavalidacin

    if((nombre==null)||//parmetrodenombrenoexiste

    email==null||//parmetrodecorreoelectrniconoexiste

    name.equals("")||//parmetronombreestvaco

    email.indexOf("@")==1){//correoelectrnicocarecede'@'

    volvermapping.findForward(FALLA)

    }

    Enestaetapa,laejecucindemtododebeversecomosigue:

    ActionForwardpblicoEjecutar(ActionMappingmapeo,formaActionForm,

    HttpServletRequestrequest,HttpServletResponserespuesta)

    throwsException{

    //Datosdeusuarioextracto

    LoginFormFormBean=forma(LoginForm)

    Stringname=formBean.getName()

    Cadenaemail=formBean.getEmail()

    //Realizarlavalidacin

    if((nombre==null)||//parmetrodenombrenoexiste

    email==null||//parmetrodecorreoelectrniconoexiste

    name.equals("")||//parmetronombreestvaco

    email.indexOf("@")==1){//correoelectrnicocarecede'@'

    volvermapping.findForward(FALLA)

    }

    volvermapping.findForward(XITO)

    }

    3. AadirunadeclaracinparaFALLAalLoginActionclase(cambiosennegrita):

    XITOprivadostaticfinalString="xito"

    ltimaFALLAstaticStringprivado="fracaso"

    Usandolalgicaanterior,laejecucinmtodoenvalasolicitudalxitovistasielusuarioproporcionaunaentradaparaambosnombreycorreoelectrnicocampos,yelcorreoelectrnicointroducidocontieneunsigno"@".Delocontrario,elfallodevistasereenva.ComosedemostrarmsadelanteenAdicinadelanteEntradasastrutsconfig.xml,sepuedeestablecerelfracasomirasasealardenuevoalapginadelformulario,porloqueelusuariotieneotraoportunidadparaintroducirdatosenelformatocorrecto.

    ConfiguracindeunmensajedeerrorSisedevuelveelformulariodeacceso,queserabuenoparainformaralusuariodequelavalidacinhafallado.Ustedpuedelograrestomediantelaadicindeunerrordecampoenformadegrano,yunaadecuadaetiquetaalaformaenlogin.jsp.Finalmente,enlaaccinobjeto,establecerelmensajedeerrorquesemostrarenelcasodequeelfalloseeligevista.

    1. AbrirLoginFormyagregarunerrordecampoalaclase:

    //Mensajedeerror

    errorprivateString

    2. Agregueunmtodogetyunmtodosetterdeerror,comosedemostranteriormente.

    3. Modificarelmtodosetterparaqueaparezcalasiguientemanera:

    pblicasetErrorvoid(){

    this.error=

    "Srvaseproporcionarentradasvlidaspara

    amboscampos"

    }

  • 14/4/2015 IntroduccinalaWebFrameworkStrutsNetBeansIDETutorial

    https://netbeans.org/kb/docs/web/quickstartwebappsstruts.html 10/13

    4. Abrirlogin.jspyhacerlossiguientescambios:

    &Nbsp

    Introduzcasunombre:

    5. EnLoginAction,enelcasodelaclusulacondicional,agregarunadeclaracinparaestablecerelmensajedeerrorantesdereenviarelfracasocondicin(cambiosennegrita):

    if((nombre==null)||//parmetrodenombrenoexiste

    email==null||//parmetrodecorreoelectrniconoexiste

    name.equals("")||//parmetronombreestvaco

    email.indexOf("@")==1){//correoelectrnicocarecede'@'

    formBean.setError()volvermapping.findForward(FALLA)

    }

    TucompletadoLoginActionclasedebeaparecerahoracomosigue:

    publicclassLoginActionextiendeorg.apache.struts.action.Action{

    XITOprivadostaticfinalString="xito"

    ltimaFALLAstaticStringprivado="fracaso"

    ActionForwardpblicoEjecutar(ActionMappingmapeo,formaActionForm,

    HttpServletRequestrequest,HttpServletResponserespuesta)

    throwsException{

    //Datosdeusuarioextracto

    LoginFormFormBean=forma(LoginForm)

    Stringname=formBean.getName()

    Cadenaemail=formBean.getEmail()

    //Realizarlavalidacin

    if((nombre==null)||//parmetrodenombrenoexiste

    email==null||//parmetrodecorreoelectrniconoexiste

    name.equals("")||//parmetronombreestvaco

    email.indexOf("@")==1){//correoelectrnicocarecede'@'

    formBean.setError()

    volvermapping.findForward(FALLA)

    }

    volvermapping.findForward(XITO)

    }

    }

    AdicinadelanteEntradasastrutsconfig.xmlParaquelaaplicacinparaquecoincidaconlaspginasJSPconlascondicionesdeldesvodevueltosporLoginAction'sejecutarmtodo,esnecesarioagregaradelanteentradasalstrutsconfig.xmlarchivo.

    1. Abrirstrutsconfig.xmlenelEditordeorigen,hagaclicderechoencualquierpartedelaaccindeentradaparaLoginForm,yelegirStruts>AadirForward.

  • 14/4/2015 IntroduccinalaWebFrameworkStrutsNetBeansIDETutorial

    https://netbeans.org/kb/docs/web/quickstartwebappsstruts.html 11/13

    2. EnelcuadrodedilogoAdelanteAgregar,escribaelxitoenForwardNombre.Introduzcalarutasuccess.jspenelcampoArchivoderecursos(esdecir,/WEBINF/success.jsp).Elcuadrodedilogodebeversedelasiguientemanera:HagaclicenAgregar.Tengaencuentaqueelsiguienteavanceentradaestaenstrutsconfig.xml(cambiosennegrita):

    3. Ejecutarlamismaaccinparaaadirunaentradahaciaadelanteparaelfracaso.Establezcalarutadearchivoderecursospara/login.jsp.Elsiguienteavanceentradaseagregaastrutsconfig.xml(cambiosennegrita):

    ConfiguracinyejecucindelaaplicacinElIDEutilizaunscriptdeconstruccinAntparageneraryejecutarlaaplicacinWeb.ElIDEgeneraelscriptdecreacinalcrearelproyecto,basndoloenlasopcionesquehaentradoenelasistenteNuevoproyecto.Antesdeconstruiryejecutarlaaplicacin,esnecesarioconfigurarelpuntodeentradapordefectodelaaplicacinparalogin.jsp.Opcionalmente,tambinpuedeagregarunasencillahojadeestiloparaelproyecto.

    Configuracindelapginadebienvenida

    Colocacindeunahojadeestilos

    Ejecutarlaaplicacin

    Configuracindelapginadebienvenida

    1. EnlaventanaProyectos,hagadobleclicenelarchivoweb.xmldescriptordedespliegue.LasfichasquefiguranenlapartesuperiordelEditordeorigenleproporcionanunainterfazparaelweb.xmlarchivo.HagaclicenlafichaPginas.EnelcampoArchivosdebienvenida,ingreselogin.jsp.AhorahagaclicenlafichaOrigenparaverelarchivo.Tengaencuentaquelogin.jspapareceahoraenelwelcomefileentrada:

  • 14/4/2015 IntroduccinalaWebFrameworkStrutsNetBeansIDETutorial

    https://netbeans.org/kb/docs/web/quickstartwebappsstruts.html 12/13

    login.jsp

    Colocacindeunahojadeestilos

    1. Aadirunasencillahojadeestiloparaelproyecto.Unaformafcildehacerloesmedianteelahorrodeestahojadeestilosdemuestraasuequipo.Copieelarchivo(CtrlC),acontinuacin,enelIDE,seleccioneelnodoPginasWebenlaventanadeProyectosypulseCtrlV).Elarchivoseaadeasuproyecto.

    2. VincularlahojadeestiloasuspginasJSPmediantelaadicindeunareferenciaentrelosetiquetas,tantodelogin.jspysuccess.jsp:

    Ejecutarlaaplicacin

    1. EnlaventanaProyectos,hagaclicenelnododelproyectoyseleccioneEjecutar.ElIDEsebasalaaplicacinwebyladespliega,usandoelservidorespecificadoalcrearelproyecto.Elnavegadorseabreymuestralalogin.jsppgina.Escribaalgunosdatosquedebefallarlavalidacin,esdecir,yaseasalirdecualquieradeloscamposenblanco,ointroducirunadireccindecorreoelectrnicoconunsmbolo"@"falta:AlhacerclicenIniciarsesin,vuelveaaparecerlapginaformulariodeacceso,quecontieneunmensajedeerror:Tratedeintroduccindedatosquedebenpasarlavalidacin.AlhacerclicenIniciarsesin,selepresentarlapginadexito:

  • 14/4/2015 IntroduccinalaWebFrameworkStrutsNetBeansIDETutorial

    https://netbeans.org/kb/docs/web/quickstartwebappsstruts.html 13/13

    Envenossuscomentarios

    MapadelSitio SobreNosotros Contacto Legalylicencias

    VerTambinConestoconcluyelaIntroduccinalMarcoStrutsenNetBeansIDE.EstedocumentodemuestracmoconstruirunaaplicacinMVCwebsencillaenNetBeansIDEutilizandoelMarcoStruts,ylointrodujoalainterfazdelIDEparadesarrollaraplicacionesweb.AustedlemostraroncmoutilizarlasetiquetasdeStrutsenpginasJSP,temporalmentealmacenardatosdeusuarioenunStrutsActionFormfrijol,yponerenprcticalalgicadereenvoutilizandounStrutsAccinobjeto.Adems,semuestracmoimplementarlavalidacinsimpleasuaplicacin,incluyendolacreacindemensajedeadvertenciaparaunintentodeiniciodesesinfallido.

    Paraverloscursosrelacionados,consultelossiguientesrecursos:

    AgregarcompatibilidadparaunMarcoWeb.UnaguageneralquedescribecmoagregarcompatibilidadframeworkwebparaNetBeansIDEutilizandoelAdministradordecomplementos.

    IntroduccinalaInfraestructuraWebprimavera.DescribelosaspectosbsicosdelusodeNetBeansIDEparadesarrollaraplicacioneswebusandoelframeworkSpring.

    IntroduccinaJavaServerFaces2.0.Undocumentoquedescribecmocablearunbeangestionadoapginasweb,ycmotomarventajadeFaceletsdeplantilla..

    Medianteelusodeestesitioweb,ustedaceptalosNetBeansPolticasyTrminosdeUso.2015,OracleCorporationy/osusfiliales.Patrocinadopor


Top Related