Você está na página 1de 7

JSFJavaServerFaces

PorJosMiguelLoor
nDeveloperCa.Ltda. Quito,Ecuador

MiembrodelParqueTecnolgicodeSoftwaredeQuito| HernndezdeGirnOe4175yVascodeContreras|+593(2)3319027/3319531|QuitoEcuador

ndicedeContenidos
1.QuesJSF?....................................................................................................................3 2.HaciadndeestdirigidoJSF?.......................................................................................3 3.ComponentesdeJSF........................................................................................................4 3.1ManagedBean..............................................................................................................4 3.2BackingBean................................................................................................................4 4.NavigationRules................................................................................................................5 5.RenderKits........................................................................................................................5 EjemplodeunaaplicacinutilizandocomponentesJSF.....................................................6 5.1EISTier.........................................................................................................................6 5.2IntegrationTier..............................................................................................................6 BusinessLogicTier.............................................................................................................7 PresentationTier.................................................................................................................7

MiembrodelParqueTecnolgicodeSoftwaredeQuito| HernndezdeGirnOe4175yVascodeContreras|+593(2)3319027/3319531|QuitoEcuador

1.QuesJSF? JavaServerFacesesunframeworkoambientedetrabajo,destinadoafacilitarlaconstrucciny desarrollodeinterfacesparaaplicacionesbasadasenentornosWeb. JSFtienelafuncindeproveerungrupomuyextensodeherramientaspredesarrolladaspara facilitar lacreacindeinterfaces;herramientas tales como: botones, cajas detexto,tablas de datos, etc. Similar a los objetos empleados para la generacin de aplicaciones de escritorio (aplicacionesSwingporejemplo) Uno de los puntos fuertes hacia los cuales se dirige la arquitectura JSF es la generacin de interfaces que puedan ser consumidas por diferentes tipos de dispositivos clientes. De esta manera,lamismainterfacepuedeversedesdeunaPCdeescritorio,ounaTablePCounPDA, sintenerquecrearnuevasinterfacesnidesarrollar diferentesprocesosparacadaunodelos ambientesantesmencionados. OtradelasventajasparalosambientesdedesarrolloquepresentaJSFesquemuchosdelos IDE'sactualesutilizadosparaeldesarrollo,incorporanmuchosdeloscontrolesutilizadosporel estndar,demaneraqueelprocesodelageneracindeunainterfazdeaplicacin,puedeser llevadoacaboutilizandoambientesvisuales,sintenerqueescribirtodoelcdigoqueserequiere paragenerarloscontrolesnecesarios.

2.HaciadndeestdirigidoJSF? EnunprincipioJSFestabadirigidofundamentalmenteaproveerun estndardecontrolespara aplicaciones.Estoes,ungrupodeherramientaspredefinidas concomportamientosembebidos quefuerancapacesdemanipular datosimplcitamenteexpresadosensuimplementacin. Por ejemplo,unacajadetextoquetuvieralacapacidaddeevaluarsucontenidoantesdequeeste participaraenningnotroesquemadecomportamiento,ounbotnquetuvieraimplcitocierto comportamientoensudefinicin. Lastareasdelmanejodeprocesos,comunicacindecomponentesoaccesoaorgenesdedatos se manejaba dentro de otros frameworks o ambientes de trabajo, como podan ser Struts o WebWorks.DeestamaneraJSFsoloseencargabadeenmascararlaltimaporcindelmanejo de las entradas y salidas de la capa Request/Response de la comunicacin HTTP de las aplicacionesbasadasenambientesWeb. Con el paso del tiempo, JSF ha ido proveyendo de soluciones para cada una de las partes involucradasenelproceso,comoporejemplolacapacidaddeestablecercomunicacionescon orgenesdedatosqueluegopuedensermanipuladosdesdelasinterfacesdesarrolladasconlos componentesdelaaplicacin.
MiembrodelParqueTecnolgicodeSoftwaredeQuito| HernndezdeGirnOe4175yVascodeContreras|+593(2)3319027/3319531|QuitoEcuador

EstonosignificaqueJSFvayaadesplazaraotrosframeworks.Dehecho,elresponsabledel desarrollodelframeworkStrutshaparticipadoactivamenteenelproyectoJSFdesdesusinicios. Struts y JSF pueden combinarse para dotar a la aplicacin de una extensa plataforma de desarrolloendondetodaslascapasdelaimplementacintienensuespaciodefinido. ComointegrarJSFconotrosframeworks dirigidos paraaplicaciones basadas enWeb esuna consideracinpropiadecadacaso;dependermuchodelanlisisdelaaplicacin,desutamao ycomplejidadydelasnecesidadesdeprocesamientoquepresentecadauna.Podradecirseque para aplicaciones pequeas con bajo nivel de complejidad puede usarse JSF por si solo y mientras ms complejidad presente la aplicacin, se puede ir aadiendo la capa extra de capacidadqueproveeelframeworkdeStruts(uotroframeworksimilar,actualmenteseintegra conSpring).

3.ComponentesdeJSF JSFintroduce2nuevostrminosalmundodeldesarrollodeaplicacionesparaJAVA:

ManagedBean BackingBean

3.1ManagedBean UnManagedBeanesunobjetoidentificadoparaelambientedelaaplicacin,paraelcualse describe:


Unaidentificacin Unalcance(scope)quepuedeser:request,session,application,etc Propiedades

3.2BackingBean UnBackingBeanesusualmenteunBeancomndejavaquesirvedesoporteparaunobjeto manejadodentrodelaaplicacin.PongamosporejemplounapginaJSPenunaaplicacin orientadaaweb:


LapginaJSPestespecificadacomounManagedBeanparalaaplicacin,conun identificadorqueladescribeparatodalaaplicacinengeneral EnestearchivoJSPsedibujantodosloscontrolesnecesariosparaproveeralapginade funcionalidad

MiembrodelParqueTecnolgicodeSoftwaredeQuito| HernndezdeGirnOe4175yVascodeContreras|+593(2)3319027/3319531|QuitoEcuador

EstapginatieneasociadounBackingBeanqueesunBeandeJava.EnesteBeanse codificanloscomportamientosespecficosasociadosacadacontroldelManagedBean representadoporlapginaJSP.

LaventajadelosBackingBeansesquepuedensercompartidosporunmismoManagedBean, demaneraqueparadiferentespginassepuedenagruparcomportamientoscomunesenun mismoBeanquesecomparteconambos.

4.NavigationRules CuandolosManagedBeansexpresadosenlaaplicacinserefierenapginasJSP,sepueden expresarNavigationRulesquedefinenlosflujosdeprocesoentreellos. EstosNavigation Rulessonexpresiones utilizadas enlos ManagedBeans querepresentanal flujodenavegacinentreunapginayotra. Bsicamente,losnavigationRulessonexpresionesliterales(String)quedefinenunasalidadesde unapginahastaotra.EstasexpresionesseescribenenelarchivodedefinicindeJSF(faces config.xml). Este es el mismo archivo donde se definen todos los Managed Beans y dems componentesdelaaplicacin.

5.RenderKits La tecnologa JSF no est directamente orientada al desarrollo de aplicaciones dirigidas a ambienteWeb.Muyporelcontrario,laimplementacindeManagedBeanscomopginasJSPes solounadesuscapacidades. En verdad, los Managed Beans pueden estar expresados como Beans que implementan componentespropiosdeJSF.Deestamaneraloscomponentespuedenluegoserconvertidosen unasalidadeinterfacemediantediferentestecnologas. En este punto es en donde entran en escena los Render Kits. Estos componentes estn encargadosdegenerarunasalidacomprensibleparaelescenariohaciaelcualestnorientados. Porejemplo:XML,WML,SVG,entreotros.

MiembrodelParqueTecnolgicodeSoftwaredeQuito| HernndezdeGirnOe4175yVascodeContreras|+593(2)3319027/3319531|QuitoEcuador

EjemplodeunaaplicacinutilizandocomponentesJSF

En el grfico expuesto podemos apreciar como integramos JSF dentro del esquema de una aplicacinorientadaaambienteWeb,manteniendotodaslascapastpicasdeunmodeloMVC.

5.1EISTier Eselrepositoriodedatosquesevayaautilizar,porejemplounaBasedeDatos 5.2IntegrationTier Lacapadeintegracinrepresentalosmapeosquesehacenparamanejarlapersistenciay

MiembrodelParqueTecnolgicodeSoftwaredeQuito| HernndezdeGirnOe4175yVascodeContreras|+593(2)3319027/3319531|QuitoEcuador

accesoadatosdelrepositorioseleccionado,demaneratransparente.Paraelcasodelejemplo mostradoseutilizaHibernatecomomotordepersistencia,aunquepodranutilizarseotrastcnicas comoaccesodirectoporJDBCoEJB3EntityBeansoTopLinkmappingsoADFEntityObjectso cualquierotraestrategiasimilar. BusinessLogicTier LacapadeLgicadenegociosrepresentalaabstraccinhechaentrelacapadeaccesoadatosy lasinterfaces.Enestacapaalmacenamostodaslasoperacionespertinentesalasactividades propiasdelaaplicacinqueestemosdesarrollando.EnelejemploseestutilizandoSpring Framework,perosepuedeutilizarEJB3SessionBeans,ADFApplicationModulesouna combinacindecualquieradeellos. PresentationTier EnestacapaesendondeencontramoslaactividadpropiadeJSF.Podemosapreciarclaramente quelosBackingBeansdeestacapanoestnejecutandoningunaactividadpropiadelnegocio. EsasactividadeslasrealizalacapadeBusinessLogic.Loqueestrealizandosonsolamentelas actividadespropiasdemanejodelainterface. Sinembargo,estaarquitecturapodraextenderseoreducirsedependiendodelanecesidad presentadaporlaaplicacin.Porejemplo:

EnlacapadepresentacinsepodraaadirStrutsparamanejodeprocesosinherentesal funcionamientodelainterfacequeestuvieranfueradelacapacidadprevistaparaJSF(por ejemploconversindeObjetosrecibidosdesdelascapasinferiores) PodraomitirselacapaBusinessLogic,ymanejarlosdatosrecibidosdesdelacapade IntegracindirectamenteenlosBackingBeansydesdeahalasinterfaces.Enestecaso laaplicacinexpondralosdatosdirectamentedesdelacapadeDatosalainterface(Data DrivenApplication)

MiembrodelParqueTecnolgicodeSoftwaredeQuito| HernndezdeGirnOe4175yVascodeContreras|+593(2)3319027/3319531|QuitoEcuador

Você também pode gostar