You are on page 1of 12

IntroduccinaJSFconNetBeans

Crditos
YannArthurNicolas yannart@gmail.com www.merlinsource.com

Objetivo
CrearunaprimeraaplicacionconJSFutilizandolostagsparaJSPyunManagedBean,entenderla configuracionbsicadeelarchivofacesconfig.xml.

Prerequisitos
Javabasico,HTMLbsico,unIDEquesoporteJSFyuncontenedorJSP/Servlets. LospasossonindicadosparaNetBeans5ysuperiorconTomcat5. Nota:ComosehizoeltutorialenentornoLinux,lasdiagonalesson"/"paraWindowsnormalmentela barraestainvertida"\"peroelentornoNetBeanspermitequebajoWindowsseutiliceelformato Unix.

Quvamosahacer?
Habrunapaginaprincipal(index.jsp)quetendrunenlaceaotra(entrada.jsp)conunformulario paraponernuestronombre. Alpulsarelbotndelformulario,sevalidarasielcamponoestavacoysielnumerodecaracteres estaenciertorango(de2a15).Silaentradaescorrecta,semuestraunmensajedebienvenidaconel nombreingresado,sihayunerror,serecargalapaginaconelformularioysemuestraunmensaje especificandoeltipodeerror.

Proyecto
AbrimosNetBeansycreamosunnu evoproyecto: File>NewProjectCategories>Web>WebApplication AparecelaventanaNewWebApplicationVamosadejarcasitodocomovienepordefault: ProjectName:Hola ProjectLocation:dejarcomovienepordefaultocambiaracambiaraun directorioparticular(ejemplo:/home/yannart/proyectos) ProjectFolder:sellenasolo SourceStructure:JavaBluePrints Server:BundledTomcat(paralosquequieranusarSunApplicationServero JBoss,dalomismo) JavaEEVersion:J2EE1.4(losqueutilicenelserverdesunpuedenusaren1.5) ContextPath:dejarcomoviene.(/Hola) Ponemoslasdospalomasenloscheckbox.

PulsamoselbotnNext.

PonemoslapalomaenelcheckboxJavaServerFaces DejamosenblancoelcheckboxdeStruts ServletURLMapping:dejamoscomoviene(/faces/*) PonemoslapalomaenelcheckboxValidateXML DejamosenblandoelcheckboxVerifyObjects

PulsamoselbotnFinish.Porfin!=)

JSP
Tenemosquecrearunosarchivosadicionalesalosquesegeneraronalcrearelproyecto:

entrada.jsp hola.jsp Paraestohacemosclicderechoenlacarpeta"WebPages"desuproyectoyluego"NEW> JSP..." SolocambiamoselcampoJSPFileName:PonemoslapalomaenelcheckboxJavaServer Facesentrada

PulseFinish Repitalosmismospasosparacrearhola.jsp PodemosborrarelarchivowelcomeJSF.jspyaquenoseutilizara:clicderechoenelarchivo welcomeJSF.jspdelacarpetaWebPagesyluegoDelete. Ahoravaaremplazarelcontenidodecadaarchivojsp. index.jsp <%@pagecontentType="text/html"%> <%@pagepageEncoding="UTF8"%>

<!DOCTYPEHTMLPUBLIC"//W3C//DTDHTML4.01Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <metahttpequiv="ContentType"content="text/html;charset=UTF8"> <title>tutorialJSF</title> </head> <body> <h1>BienvenidoaltutorialJSF</h1> <br/> <ahref="./faces/entrada.jsp">Dartunombre</a> </body> </html> entrada.jsp <%Importalostagshtmlparajsf%> <%@tagliburi="http://java.sun.com/jsf/html"prefix="h"%> <%Importalostagsdecontrolparajsf%> <%@tagliburi="http://java.sun.com/jsf/core"prefix="f"%> <%Utilizaelsiguientearchivoderecursos%> <f:loadBundlebasename="hola.recursos.mensa jes"var="msj"/> <html> <head> <title>Darnombre</title> </head> <body> <f:view> <h1> <%Pintamostexto%> <h:outputTextvalue="#{msj.cabezal}"/> </h1> <p> <%Pintamosmensajesdeerror%> <h:messagesstyle="color:red"/> </p> <%Formulario%> <h:formid="helloForm"> <%Pintamostexto%> <h:outputTextvalue="#{msj.dar_nombre}"/> <%Campodetextoobligatoriocuyovalorsemandaalatributonombre delBeanpersonaBean%> <h:inputTextvalue="#{personaBean.nombre}"required="true"> <%laentradadebedetenerentre2y15caracteres%> <f:validateLengthminimum="2"maximum="15"/>

</h:inputText> <%botonqueejecutalaaccion%> <h:commandButtonaction="saluda"value="#{msj.boton}"/> </h:form> </f:view> </body> </html>

hola.jsp <%Importalostagshtmlparajsf%> <%@tagliburi="http://java.sun.com/jsf/html"prefix="h"%> <%Importalostagsdecontrolparajsf%> <%@tagliburi="http://java.sun.com/jsf/core"prefix="f"%> <%Utilizaelsiguientearchivoderecursos%> <f:loadBundlebasename="hola.recursos.mensa jes"var="msj"/> <html> <head> <title>Bienvenido</title> </head> <body> <f:view> <h1> <%pintamostextos%> <h:outputTextvalue="#{msj.signo1}"/> <h:outputTextvalue="#{msj.saludo1}"/> <%serecuperaelvalornombredelBeanpersonaBean%> <h:outputTextvalue="#{personaBean.nombre}"/> <h:outputTextvalue="#{msj.saludo2}"/> <h:outputTextvalue="#{msj.signo2}"/> </h1> </f:view> </body> </html>

JavaBean
File>NewFile... Categories>JavaBeansObject FileTypes>JavaBeansComponent BotonNext

ClassName:PersonaBean Package:hola

BotnFinish RemplazamoselcontenidodelarchivoParsonaBean.java: packagehola; importjava.beans.*; importjava.io.Serializable; /** *@authoryannart */ publicclassPersonaBean{ privateStringnombre; publicStringgetNombre(){

returnnombre; } publicvoidsetNombre(Stringnombre){ this.nombre=nombre; } }

.properties
CreamoselarchivoquecontendrlosmensajesutilizadosenlasJSP: File>NewFile Categories>Other FileTipes>PropertiesFile BotnNext Cambiamoslossiguientescampos:

FileName:mensajes Folder:src/java/hola/recursos

PulsamosFinish Cambiamoselcontenidodeestearchivopor: #listademensajesutilizadosenlasJSP cabezal=TutorialJSF dar_nombre=Porfavorescribasunombre: saludo1=Bienvenido saludo2=aJSF boton=Saludarte signo1= signo2=!

facesconfig.xml
Ahorasolonosfaltaremplazarelcontenidodelarchivofacesconfig.xmldelacarpetaConfiguration faces: <?xmlversion="1.0"?> <!DOCTYPEfacesconfigPUBLIC "//SunMicrosystems,Inc.//DTDJavaServerFacesConfig1.1//EN" "http://java.sun.com/dtd/webfacesconfig_1_1.dtd"> <facesconfig> <navigationrule> <fromviewid>/entrada.jsp</fromviewid> <navigationcase> <fromoutcome>saluda</fromoutcome> <toviewid>/hola.jsp</toviewid> </navigationcase> </navigationrule> <managedbean> <managedbeanname>personaBean</managedbeanname> <managedbeanclass>hola.PersonaBean</managedbeanclass> <managedbeanscope>request</managedbeanscope> </managedbean> </facesconfig>

Ejecucindelproyecto
Sihicimostodobien,deberamosdeejecutarsinproblemaelproyecto: Run>RunMainProyect(opulsamosF6) Algunascapturasdelaventanadenavegador:

You might also like