En este grupo En todos

Foro de Java



Aprender JSF?

James
Ing sistemas mencion robotica universi...
Escrito por James Ruales
el 15/07/2010

Saludos,


Actualmente he visto mucha gente interesada en aprender desarrollo web en base a JAVA pero veo que apuntan hacia JSP personalmente recomiendo JSF y deseo en este espacio publiquemos nuestros conocimientos acerca del tema, en lo personal pienso publicar algunos documentos de iniciacion, un poco de teoria y si todo marcha bien algunos ejemplos, por favor publiquen sus dudas y comentarios, por mi parte tratare de resolver las dudas en cuanto me sea posible


James.

James Ruales
Ing sistemas mencion robotica universi...
Escrito por James Ruales
el 16/07/2010

Vamos a explicar que es JSF, primero segun Wikipedia es.


JavaServer Faces (JSF) es una tecnología y framework para aplicaciones Java basadas en web que simplifica el desarrollo de interfaces de usuario en aplicaciones Java EE . JSF usa JavaServer Pages (JSP) como la tecnología que permite hacer el despliegue de las páginas, pero también se puede acomodar a otras tecnologías como XUL .

JSF incluye:

  • Un conjunto de APIs para representar componentes de una interfaz de usuario y administrar su estado, manejar eventos, validar entrada, definir un esquema de navegación de las páginas y dar soporte para internacionalización y accesibilidad.
  • Un conjunto por defecto de componentes para la interfaz de usuario.
  • Dos bibliotecas de etiquetas personalizadas para JavaServer Pages que permiten expresar una interfaz JavaServer Faces dentro de una página JSP.
  • Un modelo de eventos en el lado del servidor.
  • Administración de estados.
  • Beans administrados.

La especificación de JSF fue desarrollada por la Java Community Process como JSR 127 , que definía JSF 1. 0 y 1. 1, JSR 252 que define JSF 1. 2 y JSR 314 para JSF 2.0

Objetivos

Estos objetivos de diseño representan el foco de desarrollo de JSF:

  1. Definir un conjunto simple de clases base de Java para componentes de la interfaz de usuario, estado de los componentes y eventos de entrada. Estas clases tratarán los aspectos del ciclo de vida de la interfaz de usuario, controlando el estado de un componente durante el ciclo de vida de su página.
  2. Proporcionar un conjunto de componentes para la interfaz de usuario, incluyendo los elementos estándares de HTML para representar un formulario. Estos componentes se obtendrán de un conjunto básico de clases base que se pueden utilizar para definir componentes nuevos.
  3. Proporcionar un modelo de JavaBeans para enviar eventos desde los controles de la interfaz de usuario del lado del cliente a la aplicación del servidor.
  4. Definir APIs para la validación de entrada, incluyendo soporte para la validación en el lado del cliente.
  5. Especificar un modelo para la internacionalización y localización de la interfaz de usuario.
  6. Automatizar la generación de salidas apropiadas para el objetivo del cliente, teniendo en cuenta todos los datos de configuración disponibles del cliente, como versión del navegador
James Ruales
Ing sistemas mencion robotica universi...
Escrito por James Ruales
el 16/07/2010

Después de un poco de teoría quedaría explicar todo esto de forma fácil y entendible, en pocas JSF en un estándar que define una Framework, dicho mas claramente JSF es un estándar y a la ves una Framework que define el modo de trabajo propuesto por Sun para desarrollar aplicaciones WEB, sin embargo usar los componentes oficiales de JSF con JSP puede ser muy costoso al servidor de aplicación para ello se debería usar Ajax es ese caso existen varias Frameworks JSF basadas en el patrón MVC con soporte Ajax entre tantas destacaría IceFaces y RichFaces, elegir cual es la mejor o mas adecuada depende de cada uno, personalmente prefiero usar IceFaces por que respeta mas los estándares y es 100% Ajax, tratare de preparar un documento mas completo sobre el tema y lo subiré mas tarde.

Saludos,

Fernando Buitrago Arboleda
Tecnologia sistemas de informacion itm
Escrito por Fernando Buitrago Arboleda
el 16/07/2010

Excelente tema.
Voy siguiendo tu curso de JSF.
Me intereza aprender un poco.
Para luego adentrarme en temas como IceFaces, que tengo entendido que usa por debajo JSF.

Gracias

James Ruales
Ing sistemas mencion robotica universi...
Escrito por James Ruales
el 16/07/2010

Así es Fernando Icefaces, RichFaces, PrimeFaces y algunas otras Frameworks están basadas en JSF y son Frameworks de componentes para creación de aplicaciones RIA basadas en Ajax, estas Frameworks se soportan en la propia Framework de Sun JSF pero mejoran el ciclo del mismo gracias al uso de Ajax, las mas usadas hoy por hoy son RichFaces e IceFaces, también existen propuestas y soluciones en al ámbito propietario como las de Oracle e IBM pero no abordare eso de momento.


Me parece mas interesante abordar el tema de JSF desde tres aspectos que serian, maquetación, componentes web, y persistencia, para lo cual se definirían respectivas Frameworks y/o API's que nos faciliten el trabajo, personalmente trabajo con Facelets(maquetación), IceFaces(componentes RIA), e Hibernate o Siena (persistencia), he trabajado con otros esquemas pero este me parece el mas adecuado, como IDE normalmente uso Netbeans, también he trabajado con otros pero el mas amigable con las Frameworks mencionadas me parece Netbeans.


Tratare de darme un poco de tiempo y realizar un pequeño documento introductorio sobre estas Frameworks y su uso con el IDE,


Saludos

Victor Quimbiambia
Ing. de sistemas/ octavo universidad p...
Escrito por Victor Quimbiambia
el 31/08/2010

Hola James e estado leyendo un poco y tengo una duda, ya me meti en el codigo y he logrado hacer algunas cosillas, mi pregunta es sobre el IDE netbeans xq cuando creo un proyecto web y le agrego el framework de JSF se crea un index. Xhtml y cuado creo un proyecto web sin el framew... Se crea un index. Jsp e igual funcionan las llamadas a los beans y todo, cual es la diferencia y cual seria el correcto para manejar, lo q note, es q se agrega un etiketa en el jsp <f:view></f:view>, tal vez me puedes ayudar con un articulo para saber mas sobre esto..

por el momento estoy leyendo un libro:

Beginning JSP™,
JSF™, and Tomcat
Web Development
From Novice to Professional

Giulio Zambon
with Michael Sekler

pero todo lo manejan sobre archivos jsp y nada de xhtml, gracias...

Fernando Buitrago Arboleda
Tecnologia sistemas de informacion itm
Escrito por Fernando Buitrago Arboleda
el 31/08/2010

Yo tambien estaba leyendome el libro Beginning JSP™.
Pero no he podido continuar estudiandolo por cuestiones de tiempo.
No se si sea necesario JSP para embarcarse en JSF.

James Ruales
Ing sistemas mencion robotica universi...
Escrito por James Ruales
el 31/08/2010

Primero que nada me disculpo por no haber continuado adecuadamente este debate, como segundo punto explicarles las dudas con respecto a JSF.


Fernando primero que nada para, en teoría para saber JSF no es necesario saber JSP pues JSP como tal solo se involucra en el ciclo de vida de JSF y es usado para desplegar las paginas pero esto se lo hace a través de los servlets, es decir la forma de trabajo del JSP, como se hacen las cosas con JSP los tag personalizados JSTL y las distintas Frameworks que existen para ello como Struts, Spring y demás no es necesario saberlo, pero como conocimiento general para saber que hace JSF por debajo, en que se basa y comprender mejor su ciclo de vida si seria bueno conocer al menos conceptos básicos sobre JSP


Victor con respecto a ejecutar llamadas a beans y demás depende de como sean las llamadas, aun así JSF se basa en JSP para desplegar las paginas es decir puedes hacerlo como JSP pero seria como involucionar por la forma de acceso a un bean en JSP y la mezcla de código JAVA y HTML en la capa de vista, para mantener el JSF como tal es mejor mantener las paginas como xhtml o jspx pues las versiones actuales de JSF se basan en xhtml, el estándar oficial de maquetación en JSF (Facelets) se basa en xhtml. Por otro lado están los tags de jsf son las que empiezan con <f:, de faces los componentes de JSF son los que empiezan con <h:, los faces son contenedores, validadores, y demás complementos de un componente o vista, además se pueden incluir los tags de las distintas Frameworks que existen como complemento o soporte a JSF <a: (Ajax4JSF) ó <rich: (RichFaces) ó <ice: (Icefaces) también pueden existir tags personalizados como se lo hacia en JSP haciendo uso de JSTL pero eso seria innecesario en JSF

Victor Quimbiambia
Ing. de sistemas/ octavo universidad p...
Escrito por Victor Quimbiambia
el 07/09/2010

Muchas gracias con la info, algo similar se explik en el libro, sigo estudiando el tema, me parece muy interexant en tema..


Bueno la razon x la cual ahora t molest es xq tengo un problema con un formulario, bueno se trata de un formulario de odontologia y tengo una part con un ambiente visual en los q tengo q marcar zonas con colores o simbolos y bueno eso lo puedo hacer con un applet (creo) pero el problema es q no se como comunicarme con el jsp o servlet con lo q se pueda, el problema en contreto es q al precionar en el submit se envie la parte del formulario html y lo del applet para guardar en la base, ojajla me puedas ayudar, suert con tu trabajo...

James Ruales
Ing sistemas mencion robotica universi...
Escrito por James Ruales
el 08/09/2010

Por ambiente Visual te refiers a Visual JSF? Si es asi te recomiendo no usarlo, para aprender en un tanto funcional,pero para trabajar en serio no sirve,


Por otra parte para marcar zonas con colores o simbolos no necesitas usar un applet, es mas mesclar tecnologias de esa forma podria causarte problemas graves, te recomiendo uses alguna framework como Icefaces o Richfaces y uses tipos de renderizado por estados o por estilo Visualmente puedes conseguir resultados mas atractivos y evitas mesclar tecnologias, Suerte

Fernando Buitrago Arboleda
Tecnologia sistemas de informacion itm
Escrito por Fernando Buitrago Arboleda
el 09/09/2010

Hace poco estuve mirando el Visual JSF de Netbeans y me habia parecido muy bueno.
¿Porque no sirve para trabajar en serio?

James Ruales
Ing sistemas mencion robotica universi...
Escrito por James Ruales
el 09/09/2010

Por el echo de dejar cerrado el codigo y mal atado a la estructura MVC que supuestamente maneja, Visual Web Icefaces que existion hasta Netbeans 6.5.1 era un poco estable, aun asi le falto seriedad, una aplicacion no debe ser estructurada de la forma que lo hace Visual JSF si bien es una solucion potente para proyectos pequeños y medianos a escalas mayores no puedes mantener una estructura estable y optima de la forma que lo maneja Visual JSF, si bien puede reducir tiempos de desarrollo en optimizacion y mantenimiento es muy costoso, al final eso se paga caro pues las aplicaciones tienden a presentar problemas inherentes al desarrollo, mas bien relacionados con las partes de codigo que fueron generadas, pero que afectan directamente al funcionamiento de un sistema.

Fernando Buitrago Arboleda
Tecnologia sistemas de informacion itm
Escrito por Fernando Buitrago Arboleda
el 14/09/2010

Gracias James por tus respuestas.
Al parecer Visual JSF se puede usar mas para efectos de aprendizaje.
Gracias por tu explicación.

Fernando Buitrago Arboleda
Tecnologia sistemas de informacion itm
Escrito por Fernando Buitrago Arboleda
el 09/11/2010

Hey James, ¿En que IDE trabajas JSF?

James Ruales
Ing sistemas mencion robotica universi...
Escrito por James Ruales
el 09/11/2010

Que tal Fernando para JSF puedes usar Eclipse o Netbeans depende de que Frameworks desees usar en tu desarrollo, yo personalmente siempre prefiero irme de la mano con el estándar entonces si Sun en su día creo y definió el estándar el IDE que perfectamente lo soporta e implementa el estándar tal como esta definido es Netbeans, y como servidor de aplicación el mejor seria Glassfish, podrías usar JSF puro o una Framework como Icefaces que en su version 2. 0 aunque en beta es realmente agradable de usar implementando JSF2. 0 al 100% y con soporte JEE6 y lo ultimo de la tecnología java si te vas por el lado de eclipse lo común seria Richfaces como framework y Jboss como servidor de aplicación, al final la decisión es tuya mi recomendación personal es siempre ir de la mano del estándar al final aunque a veces es un poco mas demoroso es mas fácil mantener el código y la aplicación fina.

Fernando Buitrago Arboleda
Tecnologia sistemas de informacion itm
Escrito por Fernando Buitrago Arboleda
el 10/11/2010

Nuevamente gracias hermano.
Si… es que ahora si me le metí en forma al tema.
Me estoy leyendo un manual y voy a empezar a realizar las primeras prácticas a ver cómo me va.
Si de pronto me recomienda un manual que a usted le haya gustado, le agradezco.
Suerte.

James Ruales
Ing sistemas mencion robotica universi...
Escrito por James Ruales
el 10/11/2010

La verdad manuales de JSF casi no he leído, normalmente leía las definiciones del estándar y mas leía manuales de las Frameworks que hago uso en ese caso como uso mas Icefaces, te recomendaría los tutoriales que están en la pagina.


https://www.icefaces.org/main/resources/tutorials. Iface


Si te decides por otro Framework cada cual tiene sus tutoriales y las descripciones y ejemplos de los componentes.


Con todo la recomendación inicial seria entender la tecnología que vas a usar, si es JSF1. 2 o JSF2. 0 primero deberías enterarte de todo lo que propone y como lo propone luego podrías usar JSF puro o alguna Framewrok

Fernando Buitrago Arboleda
Tecnologia sistemas de informacion itm
Escrito por Fernando Buitrago Arboleda
el 12/11/2010

Ya creé mi primer JSF.

Un poco enredado al inicio con lo del web. Xml y el faces-config. Xml.

Pero la verdad se le coge el hilo y es hasta fácil.

Lo que me preocupa es que por estos días he visto a unos amigos realizar unas aplicaciones en IcesFaces (Que es basado en JSF). He notado que cuando ese framework (Icefaces) va a realizar una validación de entrada de datos es un poco lento. ¿Alguien sabe si este framework tiene problemas de rendimiento?

James Ruales
Ing sistemas mencion robotica universi...
Escrito por James Ruales
el 12/11/2010

Todo depende de como hagas la validación y como este configurado el servidor de aplicaciones, en general el rendimiento es muy superior que hacer solo JSF pues el Framework Icefaces es 100% ajax con lo cual se mejora el rendimiento claro que en el caso de validaciones eso se hace comúnmente en el bean ahí puede haber menor rendimiento que hacerlo con JavaScript pero en Icefaces existen también validaciones Icefaces. El Framework puede rendir menos si no sabemos usarlo pero en general existen y se usan por los componentes y la mejora al rendimiento de JSF ya que de por si el ciclo de vida del mismo es pesado.


Por otra parte te comento que con JSF2. 0 el archivo faces-config. Xml que suele a veces complicarnos un poco la vida ya no es necesario pues todo se puede hacer solo con anotaciones, JSF2. 0 también soporta AJAX nativamente con lo cual no necesariamente se depende de una Framework aunque si ayudan, también Facelets pasa a ser parte del estándar con lo cual tampoco se requiere de una Framework de maquetación con todo JSF2. 0 es nuevo aunque muy interesante facilita bastante las cosas y mejora significativamente el rendimiento.

Eduardo Romero
Alajuela, Costa Rica
Escrito por Eduardo Romero
el 14/02/2011

Saludos a todos los panelistas. Soy nuevo en el desarrollo en ambiente web con java soportado en ICEfaces 2. 0 con netbeans 6.9. Segun entiendo no hay desarrollo visual. Mi pregunta es de que manera trabajo de forma manual pero desarrollando paginas con buena presentacion.