You are on page 1of 264

COMPUJUY

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

08

Comenzando con Spring MVC 3. Inyeccin de Dependencias

Posteado por :
rafa

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1469) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5441) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4669)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

Que tal amigos, con este post iniciaremos una serie de tutoriales web, emprendiendo sobre el Framework Spring MVC para Java. Comenzaremos desde lo mas bsico hasta llegar a realizar con lo que se hizo con JSF (Una tabla con datos, un CRUD sobre la misma y algo mas). En este post, como en los dems, no se dara teora de todo lo que se puede hacer con este Framework, ya que es muchsimo, sino que se ira al grano como se dice por ah, iremos directamente al cdigo, si se 1471 Lecturas 3 no se entrara explicara lo que se est haciendo peroComentarios muy enLeer mas..... detalle, uds. lo completaran con la documentacin de la misma y dems por toda la red. Recomiendo la documentacin Oficial y algunos books com ser Posteado por : Facelets en JSF 2.0 (Netbeans 6.9)

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

03

rafa

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1469) Facelets en JSF 2.0 (Netbeans 6.9) (5441) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4669) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6816) JPA EN NETBEANS CON MYSQL (7661) APLICAR ESTILO CSS EN JSF (9672)

En una aplicacin Web, cuando se crea la vista o la presentacin al usuario, es indispensable tener un formato en la cual se presentaran las distintas vistas, un plantilla con los menues, la cabecera y el pie, seria ideal que se viera en todas nuestras vistas, para ello por ejemplo en .NET son conocidas las master pages, en nuestro caso en JSF 2.0 disponemos ya incluida la librera de Facelets para la creacin de 5446 Lecturas 17 Comentarios Leer templates (plantillas). En este posr veremos como crearlas e mas..... implementarlas de manera sencilla con Netbeans.

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4989) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10633)

12

AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT)

Posteado por :
rafa

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7794) AJAX CON JQUERY (PHP) (5321) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

Que tal, despues de un tiempo, sin realizar posts por cuestiones de tiempo, volvemos al ruedo, en esta ocasin haremos un ejemplo de cmo autocompletar texto en Java (JSF) de la mano del framework Icefaces. Este Framework atraves de peticiones Ajax al servidor traera nombres de personas coincidentes con lo que tipeamos en un SelectInputText.
2135 Lecturas 13 Comentarios Leer mas.....

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (221) CLICK AQUI

COMPARTI ESTE SITIO

http://www.compujuy.com.ar/index.php?pagAct=1&pagCat=1

20

CARGAR TABLA DATATABLE

Posteado por :
rafa

Interes en gral.!!

1 / 264

COMPUJUY

20

15/12/2012

ICEFACES MAS PAGINACION

rafa

Interes en gral.!!
Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (790) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (205) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

En este post cambiaremos nuestro Datatable jsf estndar a un Datatable de Icefaces, al cambiar nuestro datatable podremos implementar fcilmente la paginacin real, es decir que solo nos traiga los registros de la base de datos que pedimos en la paginacin, ademas tambien estara incluida toda la actualizacion a la correspondiente a la Base de Datos MySql. En post siguientes iremos implementando nuevas 4671 Lecturas 7 Comentarios Leer mas..... funcionalidades ajax al mismo, por ahora realizaremos la conversin a icefaces e incluiremos la paginacin.

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

Map

Satellite

Hybrid

03

CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9

Posteado por :
rafa

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Regresamos a los post, en esta ocasin iniciaremos una serie de posts con el uso del framework ICEfaces, ICEfaces es un proyecto open source de ICESoft Tecnologies, este framework principalmente nos facilitara el desarrollo con ajax en aplicaciones RIA con Java basadas en JSF. El framework est pensado de tal manera que se puedan realizar partes Ajax utilizando los tags de ICEFaces o partes no Ajax utilizando los tags JSF de siempre, de tal manera que se pueda utilizar Ajax slo donde interese y slo5997sin condicionar que Comentarios haya de ser mas..... ah Lecturas 6 toda la pgina Leer Ajax. Algunas de las caractersticas de Icefaces la vemos a continuacin:

25

CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL

Posteado por :
rafa

En este nuevo post, cargaremos nuestra tabla datatable JSF desde una base de datos MySql. Nos basamos en los ejemplos realizados anteriormente, osea cargaremos la tabla y podremos agregar, eliminar o modificar registros desde la pagina index.xhtml, tambin estarn incluidas las validaciones desarrolladas, lo nico que cambia es la fuente de datos, y aqu solamente modificaremos nuestra clase backbean lista de los ejemplos anteriores.
6819 Lecturas 20 Comentarios Leer mas.....

24

JPA EN NETBEANS CON MYSQL

Posteado por :
rafa

http://www.compujuy.com.ar/index.php?pagAct=1&pagCat=1

2 / 264

COMPUJUY

15/12/2012

En este nuevo post lo que haremos es crear una simple base de datos MySql, luego crearemos la unidad de persistencia con JPA(Java Persistence Api ) con la cual, mediante esta podremos realizar el CRUD (create, read, update and delete ) para nuestras tablas de la BD. Realizaremos este ejemplo en concreto con el proposito de poder cargar nuestra tabla datatable JSF, con la tabla Persona que a continuacin crearemos.
7667 Lecturas 13 Comentarios Leer mas.....

08

APLICAR ESTILO CSS EN JSF

Posteado por :
rafa

En este nuevo post le daremos estilo a nuestra pagina index.xhtml con cdigo jsf, aprenderemos como crear un archivo css e incluirlo en nuestra pagina. Atraves de lneas css modificaremos el estilo nuestra tabla datatable jsf que estuvimos viendo en ejemplos anteriores, hacindola mas presentable y amigable al usuario. En este post no ensearemos css, tansolamente veremos como crear un archivo css y referenciar componentes jsf.
9674 Lecturas 6 Comentarios Leer mas.....

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/index.php?pagAct=1&pagCat=1

3 / 264

COMPUJUY

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

19

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

Posteado por :
rafa

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1470) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5441) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4669)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

Que tal.. continuamos con los ejemplos JSF, en esta ocacion seguiremos trabajando nuestro ejemplos anteriores, que consiste en un datatable en la cual tenemos la posibilidad de agregar , eliminar y modificar filas de la tabal datatable JSF. En esta ocasin validaremos la entrada, realizaremos la correspondiente conversin y luego la validacin de los datos que sern insertados en la tabla. En primer lugar explicaremos brevemente como se implementa la conversin y validacin en JSF (recopilacin de ebooks y tutos de 14 Comentarios Leer mas..... internet). 9038 Lecturas

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

04

MODIFICAR Y ELIMINAR FILAS DE UN TABLA DATATABLE JSF

Posteado por :
rafa

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1470) Facelets en JSF 2.0 (Netbeans 6.9) (5441) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4669) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6816) JPA EN NETBEANS CON MYSQL (7661) APLICAR ESTILO CSS EN JSF (9673)

Luego de unas pequeas vacaciones retornamos a los posts, en esta ocasin continuaremos con el post anterior sobre JSF, en la cual seleccionbamos una fila de un datatable jsf y tales datos lo mostrbamos en campos de texto inputtext jsf, una vez seleccionados podremos modificar o eliminar tales datos y luego reflejar los cambios en la tabla datatable jsf.
6788 Lecturas 12 Comentarios Leer mas.....

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4992) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10635)

14

SELECCIONAR FILA EN TABLA DATATABLE JSF

Posteado por :
rafa

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7794) AJAX CON JQUERY (PHP) (5321) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

En este post continuaremos con el ejemplo anterior de JSF, pero a diferencia del post anterior, aadiremos a la tabla un enlace para que tengamos la posibilidad de seleccionar una determinada fila de la tabla datatable JSF y mostrar los datos seleccionados en cajas de texto JSF. En primer lugar modificaremos nuestro bean lista, luego nuestra vista index.xhtml.
5964 Lecturas 23 Comentarios Leer mas.....

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (221) CLICK AQUI

COMPARTI ESTE SITIO

http://www.compujuy.com.ar/index.php?pagAct=2&pagCat=1

10

CARGAR TABLA JSF (DATATABLE)

Posteado por :
rafa

Interes en gral.!!

4 / 264

COMPUJUY

10

15/12/2012

CON ARRAYLIST, EN FORMA DINAMICA

rafa

Interes en gral.!!
Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (790) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (205) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

Atendiendo a varios pedidos de amigos, hoy haremos otro post sobre jsf, en este caso llenaremos un datatable jsf dinmicamente a travez de un ArrayList, en donde en una pagina index.xhtml tedremos una tabla datatable y los campos de entrada inputtext, en los cuales introduciremos los datos a llenar en nuestra tabla.A continuacin les presento una imagen del resultado final que obtendremos.
6220 Lecturas 20 Comentarios Leer mas.....

.Net!! Redes!! POSTS MAS VISTOS


Map

CONOCE JUJUY!!

Satellite

Hybrid

23

CARGAR TABLA (DATATABLE) JSF

Posteado por :
rafa

Tops!!
AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1

Ahora continuando con los ejemplos Web JSF, veremos como utilizar el componente datatable de JSF de manera sencilla y no tan complicada. En primer lugar debemos tomar en cuenta que nos basamos en los siguientes posts para un mayor entendimiento:
HOLA MUNDO WEB CON JSF (JAVA) 5 Comentarios 2034 Lecturas HOLA MUNDO WEB (2) CON JSF (JAVA) NAVEGACION CON JSF, EJEMPLO 3

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Leer mas.....

12

INTEGRAR EN JAVA (METODO DE SIMPSON)

Posteado por :
rafa

El clculo de rea es unos de los problemas ms frecuentes en Anlisis Matemtico, siempre se trata de calcular el rea que pasa que es cortada por una curva representada por una funcin f(x) y los limites xo y x1, un tpico ejemplo de clculo de area seria el de la siguiente figura:
5871 Lecturas 16 Comentarios Leer mas.....

08

NAVEGACION CON JSF, EJEMPLO 3

Posteado por :
rafa

Para comprender mejor JSF, ahora hare otro ejemplo, para tratar de
http://www.compujuy.com.ar/index.php?pagAct=2&pagCat=1 5 / 264

COMPUJUY Para comprender

mejor JSF, ahora hare otro ejemplo, para tratar de entender la navegacion con este framework para aplicaciones web java, lo que hare esta vez es que al presionar el botn nos redireccione a otra pagina mostrando un mensaje y validando la entrada en la pagina index.xhtml.

15/12/2012

5124 Lecturas

8 Comentarios

Leer mas.....

04

VALOR DE UNA FUNCION MATEMATICA EN JAVA

Posteado por :
rafa

Para trabajos de programacin aplicada, como por ejemplo para clculos numricos, aveces hacemos uso de funciones matematicas, ya sean lineales, cuadrticas, cubicas, trigonomtricas etc. Y nos encontramos en la necesidad de poder analizar en valor de una funcin especifica, en el caso de ser una solo funcin no habra problemas, pero en el caso de ser cualquier funcin nos encontramos en la necesidad de quizs expresar la funcin de la forma mas conocida, como por ejemplo para funciones Leer mas..... cuatraticas la 4128 Lecturas podramos escribir del 11 Comentarios siguiente modo:

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/index.php?pagAct=2&pagCat=1

6 / 264

SELECCIONAR FILA EN TABLA DATATABLE JSF

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

SELECCIONAR FILA EN TABLA DATATABLE JSF

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

En este post continuaremos con el ejemplo anterior de JSF, pero a diferencia del post anterior, aadiremos a la tabla un enlace para que tengamos la posibilidad de seleccionar una determinada fila de la tabla datatable JSF y mostrar los datos seleccionados en cajas de texto JSF. En primer lugar modificaremos nuestro bean lista, luego nuestra vista index.xhtml. Para estar mas al tanto de nuestros ejemplos JSF podemos visitar el ultimo post realizado:
CARGAR TABLA JSF (DATATABLE) CON ARRAYLIST, EN FORMA DINAMICA

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

Bien empecemos a nuestra clase bean lista que queda de la siguiente manera:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50.

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6819) JPA EN NETBEANS CON MYSQL (7667) APLICAR ESTILO CSS EN JSF (9674)

import java.util.ArrayList; import javax.faces.component.html.HtmlDataTable; public class Lista { private String txtNombre; private String txtApellido; private String txtDireccion; private ArrayList<Persona> lista= new ArrayList<Persona>(){}; private Persona persona; private HtmlDataTable tabla; public Lista() {
}

public void cargarLista(){ persona= new Persona(txtNombre, txtApellido, txtDireccion); this.lista.add(persona);


}

public void seleccionLista(){


persona=(Persona) tabla.getRowData(); this.txtApellido=persona.getApellido(); this.txtNombre=persona.getNombre(); this.txtDireccion=persona.getDireccion(); }

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

public HtmlDataTable getTabla() { return tabla;


}

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

public void setTabla(HtmlDataTable tabla) { this.tabla = tabla;


}

public ArrayList<Persona> getLista() { return lista;


}

public void setLista(ArrayList<Persona> lista) { this.lista = lista;


}

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223) CLICK AQUI

public String getTxtApellido() { return txtApellido;


}

public void setTxtApellido(String txtApellido) { this.txtApellido = txtApellido;


}

public String getTxtDireccion() { return txtDireccion;


}

COMPARTI ESTE SITIO

public void setTxtDireccion(String txtDireccion) { this.txtDireccion = txtDireccion;


}

Interes en gral.!!
7 / 264

http://www.compujuy.com.ar/postx.php?id=81

SELECCIONAR FILA EN TABLA DATATABLE JSF

15/12/2012

51. 52. 53. 54. 55. 56. 57. }

public String getTxtNombre() { return txtNombre;


}

public void setTxtNombre(String txtNombre) { this.txtNombre = txtNombre;


}

Esta clase tiene de nuevo,a diferencia del anterior post (CARGAR TABLA JSF (DATATABLE) CON ARRAYLIST, EN FORMA DINAMICA) : La propiedad tabla del tipo HtmlDataTable, con esta propiedad haremos un binding (enlace) con la tabla datatable JSF del index.xhtml, es decir a travez de esta propiedad podremos obtener datos de la tabla y comportamientos de la misma. El mtodo seleccionLista(), este mtodo ser el encargado de atrapar la fila seleccionada, esto lo hace atravez del metodo getRowData() de la propiedad tabla, la cual nos devuelve un objeto, que lo casteamos al de tipo Persona, luego mostramos la fila seleccionada en los mismos cajas de texto inputText, en los cual realizamos la entrada de alguna fila (fcilmente se los podra poner en otros diferentes, pero para este ejemplo lo haremos asi). Esas son todas la modificaciones a la clase lista, ahora procederemos a la modificacin del index.xhtml, para agregar una columna en la cual se hara una seleccin de una determinada fila. Nuestro index.xhtml es el contiene las siguientes lneas
1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2. <html xmlns="http://www.w3.org/1999/xhtml" 3. xmlns:h="http://java.sun.com/jsf/html" 4. xmlns:f="http://java.sun.com/jsf/core"> 5. <h:head> 6. <title>Ejemplo JSF</title> 7. </h:head> 8. <h:body> 9. <h:form> 10. <h:dataTable value="#{lista.lista}" binding="#{lista.tabla}" var="lis"> 11. <h:column> 12. <f:facet name="header"> 13. <h:outputText value="NOMBRE"/> 14. </f:facet> 15. <h:outputText value="#{lis.nombre}"/> 16. </h:column> 17. <h:column> 18. <f:facet name="header"> 19. <h:outputText value="APELLIDO"/> 20. </f:facet> 21. <h:outputText value="#{lis.apellido}"/> 22. </h:column> 23. <h:column> 24. <f:facet name="header"> 25. <h:outputText value="DIRECCION"/> 26. </f:facet> 27. <h:outputText value="#{lis.direccion}"/> 28. </h:column> 29. <h:column> 30. <f:facet name="header"> 31. <h:outputText value="SELECCIONAR"/> 32. </f:facet> 33. <h:commandLink action="#{lista.seleccionLista}"> 34. SELECCION 35. </h:commandLink> 36. </h:column> 37. </h:dataTable> 38. </h:form> 39. <br></br> 40. <h:form> 41. <h:outputLabel for="nombre"> Nombre </h:outputLabel> 42. <h:inputText id="nombre" value="#{lista.txtNombre}"></h:inputText><br></br> 43. <h:outputLabel for="apellido"> Apellido </h:outputLabel> 44. <h:inputText id="apellido" value="#{lista.txtApellido}"></h:inputText><br></br> 45. <h:outputLabel for="direccion"> Direccion </h:outputLabel> 46. <h:inputText id="direccion" value="#{lista.txtDireccion}"></h:inputText><br></br> 47. <h:commandButton value="Agregar" action="#{lista.cargarLista}"></h:commandButton> 48. </h:form> 49. </h:body> 50. </html>

Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

Map

Satellite

Hybrid

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Lo que aqui agregamos es una etiqueta <h:commandLink> (tambin podra ser un botn) que es un enlace JSF (<a> en html), el cual en el evento action de la misma esta apuntando al mtodo seleccionLista() del nuestra clase lista, para que esta se ejecute y muestre la fila seleccionada en los inputtext. Y nos no olvidamos que tambin en el tag <h:dataTable> agregamos el
http://www.compujuy.com.ar/postx.php?id=81 8 / 264

SELECCIONAR FILA EN TABLA DATATABLE JSFen el tag Y nos no olvidamos que tambin

<h:dataTable> agregamos el evento binding que esta asociado a la propiedad tabla del tipo HtmlDataTable de la clase lista, atravez de esta la asociamos a la clase backbean. Tambin encerramos al <h:dataTable> en etiquetas <h:form>, para que se pueda enviar datos hacia el servidor. Bien eso es todo luego tenemos el faceconfig.xml que no se lo modifica (respecto al ejemplo anterior) y que es el siguiente:
1. <?xml version='1.0' encoding='UTF-8'?> 2. <!-- =========== FULL CONFIGURATION FILE

15/12/2012

================================== -->
3. <faces-config version="2.0" 4. xmlns="http://java.sun.com/xml/ns/javaee" 5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 6. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"> 7. <managed-bean> 8. <managed-bean-class>Lista</managed-bean-class> 9. <managed-bean-name>lista</managed-bean-name> 10. <managed-bean-scope>session</managed-bean-scope> 11. </managed-bean> 12. </faces-config>

La clase Persona tal cual estaba en el ejemplo anterior, con las siguientes lneas:
1. 2. 3. 4. 5. 6. 7. 8. 9.

public class Persona { private String nombre; private String apellido; private String direccion; public Persona() {
}

public Persona(String nombre, String apellido, String direccion)


{

10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. }

this.nombre = nombre; this.apellido = apellido; this.direccion = direccion;


}

public String getApellido() { return apellido;


}

public void setApellido(String apellido) { this.apellido = apellido;


}

public String getDireccion() { return direccion;


}

public void setDireccion(String direccion) { this.direccion = direccion;


}

public String getNombre() { return nombre;


}

public void setNombre(String nombre) { this.nombre = nombre;


}

Bien el rbol del proyecto queda como sigue

http://www.compujuy.com.ar/postx.php?id=81

9 / 264

SELECCIONAR FILA EN TABLA DATATABLE JSF

15/12/2012

Ya estamos en condiciones de ejecutar el proyecto

Agregamos un par de registros

Observamos que aparece un enlace para hacer la seleccin Realizamos una seleccin y tiene que aparecer en los campos de entrada como lo muestra la imagen

http://www.compujuy.com.ar/postx.php?id=81

10 / 264

SELECCIONAR FILA EN TABLA DATATABLE JSF

15/12/2012

Bien vemos que funciona el ejemplo, es una de las maneras ms sencillas de realizar una seleccin del una fila en una tabla JSF, si desean adquirir el proyecto con el codigo para Netbeans solo tienen que comentar y lo

subire a la brevedad. Descargar proyecto

Trial comento... Jaime comento...

el dia 20/01/2011 a las 17:36

Hola, buen ejemplo, estaba buscando algo igual, gracias


el dia 20/01/2011 a las 22:44

excelentes tutoriales para la compresion de programacion con jsf gracia

rafael_ortega comento...

el dia 07/02/2011 a las 22:21

buen tutorial, estaba estancado porque no habia encontrado en jsf como hacer una datatable seleccionable. habia visto otra solucin con radio buttons pero es ms larga

Monica comento...

el dia 15/02/2011 a las 11:43

ESTE TUTOTIAL ESTA SUPER BUENO.. ENVIAMELO POR FAVOR NECESITO HACER UN EJEMPLO PARECIDO A TUYO ...GRACIAS

rafa comento... Lei comento...


http://www.compujuy.com.ar/postx.php?id=81

el dia 15/02/2011 a las 12:38

Proyecto subido Monica, espero que sea de tu ayuda.. saludos


el dia 03/03/2011 a las 21:59
11 / 264

SELECCIONAR FILA EN TABLA DATATABLE JSF Lei comento...

15/12/2012

muy bueno-- gracias por el tutorial eric comento...


el dia 16/04/2011 a las 13:01

la verdad si esta bueno el ejemplo... gracias me sirvio de mucho.... Saludos!!!


richy comento...
el dia 02/05/2011 a las 21:30

gracias por tu ayuda este tuto esa bueno gracias


Hipolito comento...
el dia 25/05/2011 a las 14:34

Muy buen tutorial estoy siguiendo todos y me estan sirviendo para enteder y aprender JFS
DonVidela comento...
el dia 23/09/2011 a las 14:30

Muy til, me costo un poco adaptarlo pero es problema de como esta hecho mi prototipo, muchas gracias por tu tutorial.

Dani comento...

el dia 20/10/2011 a las 10:21

Hola, en el ejemplo se ve todo muy claro pero me descargo el ejemplo, lo compilo, lo ejecuto y la tabla no funciona correctamente. Siempre agregas una fila, es decir, sobreescribe la primera siempre... No se que puede fallar. Lo que si que uso es la libreria JSF 2.1 pero no creo que sea el problema, no? Alguien sabe el porque? Gracias.
jose comento...
el dia 16/12/2011 a las 11:01

y de donde te descargaste la imagen


HENRY comento...
el dia 03/02/2012 a las 12:14

Muchas gracias por el tutorial, exelente me ayudo mucho en un proyecto que estoy desarrollando
carlos comento...
el dia 27/03/2012 a las 22:18

Excelente ejemplo, gracias


Henry comento...
el dia 18/04/2012 a las 13:09

Muchas gracias por tui aporte, me sirvio bastante. Una consulta adicional, yo soy nuevo en java y tambien faces, pero como puedo hacer para pasar datos de un datatable que esta dentro de un jsp pero que la informacion de la celda se vaya hacia otro jsp, dentro del otro jsp hay inputtextbox. Te agradezco anticipadamente tu aporte Henry
Maris comento...
el dia 21/05/2012 a las 22:54

Muy buen trabajo, ayuda bastante Muchisimas gracias... :)


http://www.compujuy.com.ar/postx.php?id=81 12 / 264

SELECCIONAR FILA EN TABLA DATATABLE JSF

15/12/2012

Maris comento...

el dia 21/05/2012 a las 22:54

Muy buen trabajo, ayuda bastante Muchisimas gracias... :)


davidxf comento...
el dia 17/06/2012 a las 20:17

Parcero directamente desde el eje cafetero gracias me fue de bastante ayuda


Jgarcia comento...
el dia 25/06/2012 a las 10:44

Sencillo y muy ilustrativo. Lo intente correr pero no funciono. Pero ya es una base. Gracias!!
fardul comento...
el dia 09/10/2012 a las 16:03

Hola primero quiero felicitarte esta muy bueno el post, gracias por tu tiempo para ensear un poco de todo lo que tienes. Tambien me gustaria saber si tienes uno parecido pero donde se manejen base de datos la verdad eh estado trabajando con oracle 10g, JSF, NetBeans algo muy parecido pero no eh podido listar muy bien... Espero me puedas colaborar muchas gracias de nuevo...
kike comento...
el dia 02/11/2012 a las 00:58

Como adaptarias esto usando una base de datos? Soy un noob xD


ariel comento...
el dia 25/11/2012 a las 11:26

hola gracias le hago algunas modificaciones y listo para adaptar para mi trabajo
Gustavo comento...
el dia 27/11/2012 a las 15:56

Muy buen trabajo, se me aclaro muchas cosas que estube investigando y no entendia.... con este ejemplo siento haber dado un salto.......GRACIAS ES UN ALIENTO PARA SEGUIRME SUPERANDO
INGRESA TU COMENTARIO

NOMBRE MAIL

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

http://www.compujuy.com.ar/postx.php?id=81

13 / 264

SELECCIONAR FILA EN TABLA DATATABLE JSF

15/12/2012

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=81

14 / 264

MODIFICAR Y ELIMINAR FILAS DE UN TABLA DATATABLE JSF

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

MODIFICAR Y ELIMINAR FILAS DE UN TABLA DATATABLE JSF

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

Luego de unas pequeas vacaciones retornamos a los posts, en esta ocasin continuaremos con el post anterior sobre JSF, en la cual seleccionbamos una fila de un datatable jsf y tales datos lo mostrbamos en campos de texto inputtext jsf, una vez seleccionados podremos modificar o eliminar tales datos y luego reflejar los cambios en la tabla datatable jsf. Para estar al tanto de este simple ejemplo podemos revisar el post anterior
SELECCIONAR FILA EN TABLA DATATABLE JSF

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

En el post anterior tenamos nuestra clase java llamada lista, lo cual es nuestro backbean que trabaja con nuestro index.xhtml, en esta clase seencuentran los mtodos necesarios para agregar una fila a nuestra tabla o bien seeccionarla, ahora agregaremos 2 metodos mas para poder eliminar y modificar una fila de la tabla datatable jsf. A continuacin tenemos el cdigo de nuestra clase lista.
1. import java.util.ArrayList; 2. import javax.faces.component.html.HtmlDataTable; 3. 4. public class Lista { 5. private String txtNombre; 6. private String txtApellido; 7. private String txtDireccion; 8. private ArrayList<Persona> lista= new ArrayList<Persona>(){}; 9. private Persona persona; 10. private int index; 11. private HtmlDataTable tabla; 12. public Lista() { 13. persona= new Persona(); 14. } 15. public void cargarLista(){ 16. persona= new Persona(txtNombre, txtApellido, txtDireccion); 17. this.lista.add(persona);

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6819) JPA EN NETBEANS CON MYSQL (7667) APLICAR ESTILO CSS EN JSF (9674)

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

18.
19. }

20. public void seleccionLista(){


21.

22.
23.

24.
25.

persona=(Persona) tabla.getRowData(); this.index=tabla.getRowIndex(); this.txtApellido=persona.getApellido(); this.txtNombre=persona.getNombre(); this.txtDireccion=persona.getDireccion(); }

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

26.

27. public void eliminarLista(){ 28. this.lista.remove(persona); 29. } 30. public void modificarLista(){ 31. persona.setNombre(this.txtNombre); 32. persona.setApellido(this.txtApellido); 33. persona.setDireccion(this.txtDireccion); 34. try{ 35. this.lista.set(index, persona); 36. }catch(Exception e){ 37. System.out.println(e); 38. } 39. } 40. public HtmlDataTable getTabla() { 41. return tabla; 42. } 43. 44. public void setTabla(HtmlDataTable tabla) { 45. this.tabla = tabla; 46. } 47.
http://www.compujuy.com.ar/postx.php?id=82

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223) CLICK AQUI

COMPARTI ESTE SITIO

Interes en gral.!!
15 / 264

MODIFICAR Y ELIMINAR FILAS DE UN TABLA DATATABLE JSF

15/12/2012

48.
49.

public ArrayList<Persona> getLista() { return lista;


}

50.
51.

52.
53.

public void setLista(ArrayList<Persona> lista) { this.lista = lista;


}

54.
55.

public String getTxtApellido() { return txtApellido;


}

56.
57.

58.
59.

public void setTxtApellido(String txtApellido) { this.txtApellido = txtApellido;


}

60.
61.

public String getTxtDireccion() { return txtDireccion;


}

62.
63.

64.
65.

public void setTxtDireccion(String txtDireccion) { this.txtDireccion = txtDireccion;


}

Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

66.
67.

public String getTxtNombre() { return txtNombre;


}

Map

Satellite

Hybrid

68.
69.

70.
71.

public void setTxtNombre(String txtNombre) { this.txtNombre = txtNombre;


}

72. }

En esta clase se encuentran los dos nuevos mtodos


1. public void eliminarLista(){ 2. this.lista.remove(persona); 3. } 4. public void modificarLista(){ 5. persona.setNombre(this.txtNombre); 6. persona.setApellido(this.txtApellido); 7. persona.setDireccion(this.txtDireccion); 8. try{ 9. this.lista.set(index, persona); 10. }catch(Exception e){ 11. System.out.println(e); 12. } 13. }

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

En el mtodo eliminarLista() solamente utilizamos el mtodo remove del ArrayList (del tipo persona) lista, para eliminar un objeto persona. En el mtodo modificarLista(), seteamos las propiedades del objeto persona con los valores introducidos en los campos de texto, luego utilizamos el mtodo set del ArrayList para modificar un objetos de la lista, al mtodo set de lista le debemos pasar el ndice del objeto a modificar (todo esto encerrado en un try-cath para atrapar excepciones en un caso de puntero nulo), en nuestro caso este ndice se llama index, que lo modificamos en el mtodo seleccionLista(), atraves del mtodo getRowIndex(). Ahora modificaremos nuestro index.xhtml, en la cual le agregaremos un botn que nos permitir modificar una fila seleccionada, a continuacin el cdigo
1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2. <html xmlns="http://www.w3.org/1999/xhtml" 3. xmlns:h="http://java.sun.com/jsf/html" 4. xmlns:f="http://java.sun.com/jsf/core"> 5. <h:head> 6. <title>Ejemplo JSF</title> 7. </h:head> 8. <h:body> 9. <h:form> 10. <h:dataTable value="#{lista.lista}" binding="#{lista.tabla}" var="lis"> 11. <h:column> 12. <f:facet name="header"> 13. <h:outputText value="NOMBRE"/> 14. </f:facet> 15. <h:outputText value="#{lis.nombre}"/> 16. </h:column> 17. <h:column> 18. <f:facet name="header"> 19. <h:outputText value="APELLIDO"/> 20. </f:facet> 21. <h:outputText value="#{lis.apellido}"/> 22. </h:column> 23. <h:column> 24. <f:facet name="header"> 25. <h:outputText value="DIRECCION"/> 26. </f:facet> 27. <h:outputText value="#{lis.direccion}"/> 28. </h:column> 29. <h:column> 30. <f:facet name="header">
http://www.compujuy.com.ar/postx.php?id=82

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

16 / 264

MODIFICAR Y ELIMINAR FILAS DE UN TABLA DATATABLE JSF

15/12/2012

31.

32.
33.

34.
35.

36.
37.

38.
39.

40.
41.

42.
43.

44.
45.

46.
47.

48.
49.

50.
51.

52.

<h:outputText value="SELECCIONAR"/> </f:facet> <h:commandLink action="#{lista.seleccionLista}"> SELECCION </h:commandLink> </h:column> </h:dataTable> </h:form> <br></br> <h:form> <h:outputLabel for="nombre"> Nombre </h:outputLabel> <h:inputText id="nombre" value="#{lista.txtNombre}"></h:inputText><br></br> <h:outputLabel for="apellido"> Apellido </h:outputLabel> <h:inputText id="apellido" value="#{lista.txtApellido}"></h:inputText><br></br> <h:outputLabel for="direccion"> Direccion </h:outputLabel> <h:inputText id="direccion" value="#{lista.txtDireccion}"></h:inputText><br></br> <h:commandButton value="Agregar" action="#{lista.cargarLista}"></h:commandButton> <h:commandButton value="Modificar" action="#{lista.modificarLista}"></h:commandButton> <h:commandButton value="Eliminar" action="#{lista.eliminarLista}"></h:commandButton> </h:form> </h:body> </html>

Aqui le agregamos la siguiente linea


1. <h:commandButton value="Modificar" action="#{lista.modificarLista}"></h:commandButton>

Que es nuestro boton, con el evento action apuntando al metodo modificarLista() de la clase lista. Nuestro facesconfig.xml no tiene modificacin y sigue de la siguiente manera
1. <?xml version='1.0' encoding='UTF-8'?>

2. <!-- =========== FULL CONFIGURATION FILE ================================== -->


3. <faces-config version="2.0" 4. xmlns="http://java.sun.com/xml/ns/javaee" 5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 6. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"> 7. <managed-bean> 8. <managed-bean-class>Lista</managed-bean-class> 9. <managed-bean-name>lista</managed-bean-name> 10. <managed-bean-scope>session</managed-bean-scope> 11. </managed-bean> 12. </faces-config> 13.

Bien estamos en condiciones de ejecutar nuestro index.xhtml

Vemos que nos muestra nuestro botn para poder modificar. Agregamos registros y seleccionamos uno

http://www.compujuy.com.ar/postx.php?id=82

17 / 264

MODIFICAR Y ELIMINAR FILAS DE UN TABLA DATATABLE JSF

15/12/2012

Modificamos los campos de entrada y pulsamos sobre modificar y observamos que se produce la modificacin

Ahora seleccionamos otro y pulsamos en eliminar y dicha fila se elimina.

http://www.compujuy.com.ar/postx.php?id=82

18 / 264

MODIFICAR Y ELIMINAR FILAS DE UN TABLA DATATABLE JSF

15/12/2012

Bueno eso es todo por este sencillo post, disculpen si hay errores, hasta pronto

fabricio comento...

el dia 16/02/2011 a las 19:25

Buenaso mi estimado amigo, esto me sirvi mucho, desde varios meses ando buscando algo as, Por favor haz esta misma aplicacin pero con conexin a una tabla mysql, seria EXCELENTE...!!

rafa comento...

el dia 19/02/2011 a las 15:41

Que tal Fabricio, esa es la idea tambien, dentro de uns posts haremos lo que esas pidiendo,, saludos

Holger comento...

el dia 26/04/2011 a las 22:29

Gracias man ... me sirve un montn para mi tesisssss......


Holger comento...
el dia 26/04/2011 a las 22:29

Gracias man ... me sirve un montn para mi tesisssss......


rafa comento...
el dia 27/04/2011 a las 14:06

De nada, sus comentarios son la fuerza para seguir posteando.


hipolito comento...
el dia 25/05/2011 a las 14:43

Bueno hasta ahorita todos me han servido y me han salido sin nigun problema, gracias por tu aporte
Liz comento... Otto comento...
el dia 28/10/2011 a las 00:06

Gracias a ti por el aporte !!!!!!!!!mil gracias!!!! sigue adelante.


el dia 15/02/2012 a las 16:30

Muchas gracias por el aporte, he seguido todos los post hasta este y he aprendido mucho, pronto los terminare, me gustaria saber si tienes algun ejemplo de una pagina encabezado detalle con base de datos?

Richard comento...

el dia 10/03/2012 a las 07:01

Mugras gracias por el tuto, ahora tengo un problema. requiero usar paginacion en el h:datatable pero lo que no quiero es valerme de framework's como primefaces, richfaces, etc. tengo limitaciones y no me permiten usar este tipo de componentes enriquecidos. agradeceria su colaboracion
nemesis comento...
el dia 17/05/2012 a las 10:11

bues post me podrias pasar tu codigo por favor sq stoy realizando un proyecto xfaz me urge..............
khriz comento...
el dia 30/05/2012 a las 00:43

No hay link de descarga???? por favor, al email :(


http://www.compujuy.com.ar/postx.php?id=82 19 / 264

MODIFICAR Y ELIMINAR FILAS DE UN TABLA DATATABLE JSF por favor, al email :(

15/12/2012

only-khriz@hotmail.com https://www.facebook.com/OnlyKhriZ199
KHRIZ comento...
el dia 30/05/2012 a las 00:53

PERO NO SE GUARDA EN UNA BD :s CIERRO LA VENTANA Y NO SE GUARDA NADA :| ESE ES EL PROBLEMA DE TRABAJAR CON ARRAYLIST
INGRESA TU COMENTARIO

NOMBRE MAIL

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=82

20 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

Que tal.. continuamos con los ejemplos JSF, en esta ocacion seguiremos trabajando nuestro ejemplos anteriores, que consiste en un datatable en la cual tenemos la posibilidad de agregar , eliminar y modificar filas de la tabal datatable JSF. En esta ocasin validaremos la entrada, realizaremos la correspondiente conversin y luego la validacin de los datos que sern insertados en la tabla. En primer lugar explicaremos brevemente como se implementa la conversin y validacin en JSF (recopilacin de ebooks y tutos de internet).

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

Conversion Validacion JSF diferencias.


La conversin es el proceso por el cual JSF convierte los datos ingresados en la vista (como por ejemplo el dato introducido en un inputtext) a los tipos de datos declarados en el backbean. La validacin es el proceso por el cual JSF comprueba que el formato del dato sea el correcto, es decir que si especificamos en la validacin que sea un mail con este formato xxxxx@xxxxxx.xxx, jsf se encarga de revisar de que la validacin declarada se cumpla, caso contrario devolver una excepcin. La conversin, propiamente dicha se encarga de que el tipo de datos de la vista se corresponda con el tipo de datos del backbean, mientras la validacin se encarga de que los datos introducidos en la vista cumplan con el formato especificado ya sean en la vista o en el backbeans (un validador personalizado).
Conversin en JSF ULTIMOS POSTS X CATEGORIA Java!!
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6819) JPA EN NETBEANS CON MYSQL (7667) APLICAR ESTILO CSS EN JSF (9674)

En jsf existen dos maneras para realizar la conversin estndar. La primera consiste en aadir el atributo converter=#{identificadorConversor} al componente. Este atributo es valido para los componentes del tipo UIInput (inputText, inputSecret, inputHidden) y outputText. Por ejemplo <h:inputText converter=#{Integer} value=#{bean.propiedad}/> En JSF estn dispuestos los siguientes conversores
TIPO DE CONVERSOR IDENTIFICADOR DEL CONVERSOR

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

Ajax!!

BigDecimalConverter BigIntegerConverter NumberConverter IntegerConverter ShortConverter ByteConverter CharacterConverter


http://www.compujuy.com.ar/postx.php?id=83

BigDecimal BigInteger Number Integer Short Byte Character


AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223) CLICK AQUI

COMPARTI ESTE SITIO

Interes en gral.!!
21 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

FloatConverter DoubleConverter BooleanConverter DateTimeConverter

Float Double Boolean DateTime

La otra opcin es la de incluir dentro de la etiqueta UIInput la etiqueta perteneciente a jsf core, como por ejemplo <h:inputText id=Fecha value=#{bean.propiedad}> <f:convertDateTime pattern=dd/MM/yyyy/> </h:inputText> Esta etiqueta jsf core presenta mayor flexibilidad ya que permite incluir atributos extras, como en el ejemplo anterior podemos indicar el formato a la fecha. Los atributos disponibles para <f:convertNumber /> son los siguientes NOMBRE DEL ATRIBUTO currencyCode currencySymbol groupingUsed integerOnly locale maxFractionDigits maxIntegerDigits minFractionDigits minIntegerDigits pattern type TIPO String String boolean boolean

Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

Map

Satellite

Hybrid

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

java.util.Locale int Int Int int String String

Los atributos disponibles para <f:convertDateTime/> son los siguientes NOMBRE DEL ATRIBUTO dateStyle parseLocale pattern timeStyle timeZone type
http://www.compujuy.com.ar/postx.php?id=83

TIPO String String o Locale String String String o TimeZone String


22 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

Validacin en jsf

Estos componentes implementan la interfaz javax.faces.validator.Validator, que contiene un nico mtodo validate(). A continuacin un ejemplo de cmo se implemetaria una validacin estndar en jsf <h:inputText "> <f:validateLength maximum="50" /> </h:inputText> En el ejemplo anterior validamos que la longitud de la cadena ingresada no sea mayor a 50 caracteres. En jsf tiene los siguientes validadores estndares que a continuacin se detallan en la tabla siguiente: CLASE DE TAG JSF VALIDADOR

ATRIBUTOS DESCRIPCIN

DoubleRangeValidator

validateDoubleRange minimum,maximum

Validaqueel valor del componenteseamayor queun mnimoy mayor queunmximo. Estevalor debeser tipofloat

LengthValidator

validateLength

minimum,maximum

Validaquelalongituddel valor del componenteestentreun mnimoy unmximo

LongRangeValidator

validateLongRange

minimum,maximum

Validaqueel valor del componenteseamayor queun mnimoy mayor queunmximo. Estevalor debeser tipoentero

Otra forma de validar en jsf, es mediante un validador personalizado, para ellos debemos hacer lo siguiente: Crear un mtodo de la siguiente manera
1. public void validaMail(FacesContext fc, UIComponent uic, Object o) {

2. //validamos o}
3.

donde aqui solo utilizamos el Object o, que es el valor que queremos validar. Bien hasta aqu una breve explicacin de lo que usaremos en este post (por supuesto que hay mas por saber, pero con esto nos basta por ahora). Para seguir al ritmo de cmo empezamos podemos visitar el ltimos post propuesto
MODIFICAR Y ELIMINAR FILAS DE UN TABLA DATATABLE JSF (97)

En primer lugar aadiremos a nuestra clase Persona nuevos atributos. Vamos a suponer que nuestro bean Persona es un empleado de una empresa (lo podramos cambiar a Persona por Empleado pero como el ejemplo ya empez as , lo dejaremos tal cual esta ), agregamos estas propiedades con el objeto de poder realizar validaciones diferentes. Teniamos NOMBRE, APELLIDO Y DIRECCION, ahora agregaremos
FECHA DE NACIMIENTO SECTOR DE LA EMPRESA SUELDO BASICO

A conitnuacion muestro como queda nuestra clase Persona


1. public class Persona { 2. private String nombre; 3. private String apellido; 4. private String direccion; 5. private String mail; 6. private String fechaNacimiento; 7. private int sectorEmpresa; 8. private double sueldoBasico; 9. public Persona() { 10. } 11. 12. public Persona(String nombre, String apellido, String direccion, String mail, String fechaNacimiento, int sectorEmpresa, double
http://www.compujuy.com.ar/postx.php?id=83 23 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF. String mail, String fechaNacimiento, int sectorEmpresa,

double

15/12/2012

13.

14.
15.

16.
17.

18.
19.

20.
21.

sueldoBasico) { this.nombre = nombre; this.apellido = apellido; this.direccion = direccion; this.mail = mail; this.fechaNacimiento = fechaNacimiento; this.sectorEmpresa = sectorEmpresa; this.sueldoBasico = sueldoBasico; }

22.
23.

24.
25.

public String getApellido() { return apellido;


}

26.
27.

28.
29.

public void setApellido(String apellido) { this.apellido = apellido;


}

30.
31.

32.
33.

public String getDireccion() { return direccion;


}

34.
35.

36.
37.

public void setDireccion(String direccion) { this.direccion = direccion;


}

38.
39.

40.
41.

public String getNombre() { return nombre;


}

42.
43.

44.
45.

public void setNombre(String nombre) { this.nombre = nombre;


}

46.
47.

48.
49.

public double getSueldoBasico() { return sueldoBasico;


}

50.
51.

52.
53.

public void setSueldoBasico(double sueldoBasico) { this.sueldoBasico = sueldoBasico;


}

54.
55.

56.
57.

public String getFechaNacimiento() { return fechaNacimiento;


}

58.
59.

60.
61.

public void setFechaNacimiento(String fechaNacimiento) { this.fechaNacimiento = fechaNacimiento;


}

62.
63.

64.
65.

public int getSectorEmpresa() { return sectorEmpresa;


}

66.
67.

68.
69.

public void setSectorEmpresa(int sectorEmpresa) { this.sectorEmpresa = sectorEmpresa;


}

70.
71.

72.
73.

public String getMail() { return mail;


}

74.
75.

76.
77.

public void setMail(String mail) { this.mail = mail;


}

78.
79.

80. }
81.

Ahora modificaremos nuestra clase lista, el cdigo lo mostramos a continuacin


1. import java.text.ParseException; 2. import java.text.SimpleDateFormat; 3. import java.util.ArrayList; 4. import java.util.Date; 5. import javax.faces.application.FacesMessage; 6. import javax.faces.component.UIComponent; 7. import javax.faces.component.html.HtmlDataTable; 8. import javax.faces.context.FacesContext; 9. import javax.faces.validator.ValidatorException;

10.
11. public class Lista { 12. private String txtNombre; 13. private String txtApellido; 14. private String txtDireccion; 15. private String txtMail; 16. private Date txtFechaNac;
http://www.compujuy.com.ar/postx.php?id=83 24 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

17.

18.
19.

20.
21.

22.
23.

24.
25.

private double txtSueldoBas; private int txtSectorEmpr; private ArrayList<Persona> lista= new ArrayList<Persona>(){}; private Persona persona; private int index; private HtmlDataTable tabla; SimpleDateFormat fecha = new SimpleDateFormat("dd/MM/yyyy"); public Lista() { persona= new Persona();

26.

} 27. public void cargarLista(){ 28. persona= new Persona(txtNombre, txtApellido, txtDireccion, txtMail, fecha.format(txtFechaNac), txtSectorEmpr, txtSueldoBas); 29. this.lista.add(persona); 30. } 31. public void seleccionLista() throws ParseException{ 32. persona=(Persona) tabla.getRowData(); 33. this.index=tabla.getRowIndex(); 34. this.txtApellido=persona.getApellido(); 35. this.txtNombre=persona.getNombre(); 36. this.txtDireccion=persona.getDireccion(); 37. this.txtMail=persona.getMail(); 38. this.txtSectorEmpr=persona.getSectorEmpresa(); 39. this.txtSueldoBas=persona.getSueldoBasico(); 40. this.txtFechaNac=fecha.parse(persona.getFechaNacimiento()); 41. } 42. public void eliminarLista(){ 43. this.lista.remove(persona); 44. } 45. public void modificarLista(){ 46. persona.setNombre(this.txtNombre); 47. persona.setApellido(this.txtApellido); 48. persona.setDireccion(this.txtDireccion); 49. try{ 50. this.lista.set(index, persona); 51. }catch(Exception e){ 52. System.out.println(e); 53. } 54. } 55. public HtmlDataTable getTabla() { 56. return tabla; 57. } 58. public void setTabla(HtmlDataTable tabla) { 59. this.tabla = tabla; 60. } 61. 62. public ArrayList<Persona> getLista() { 63. return lista; 64. } 65. public void setLista(ArrayList<Persona> lista) { 66. this.lista = lista; 67. } 68. public String getTxtApellido() { 69. return txtApellido; 70. } 71. public void setTxtApellido(String txtApellido) { 72. this.txtApellido = txtApellido; 73. } 74. public String getTxtDireccion() { 75. return txtDireccion; 76. } 77. public void setTxtDireccion(String txtDireccion) { 78. this.txtDireccion = txtDireccion; 79. } 80. public String getTxtNombre() { 81. return txtNombre; 82. } 83. public void setTxtNombre(String txtNombre) { 84. this.txtNombre = txtNombre; 85. }

86.
87.

88.
89.

public Date getTxtFechaNac() { return txtFechaNac;


}

90.
91.

92.
93.

public void setTxtFechaNac(Date txtFechaNac) { this.txtFechaNac = txtFechaNac;


}

94.
95.

96.
97.

public int getTxtSectorEmpr() { return txtSectorEmpr;


}

98.
99.

100.
101.

public void setTxtSectorEmpr(int txtSectorEmpr) { this.txtSectorEmpr = txtSectorEmpr;


}

102.
103.

104.
105.

public double getTxtSueldoBas() { return txtSueldoBas;


}

106.
107.

108.

public void setTxtSueldoBas(double txtSueldoBas) { this.txtSueldoBas = txtSueldoBas;


25 / 264

http://www.compujuy.com.ar/postx.php?id=83

VALIDACION EN JSF,.VALIDANDO ENTRADA A LA TABLA DATATABLE JSF. 108. this = txtSueldoBas

15/12/2012

109.

110.
111.

112.
113.

public String getTxtMail() { return txtMail;


}

114.
115.

116.
117.

public void setTxtMail(String txtMail) { this.txtMail = txtMail;


}

118.
119.

public void validaMail(FacesContext fc, UIComponent uic, Object


o) {

120.
121.

122.
123.

String strValue = String.valueOf(o); if (!strValue.matches(".+@.+\\.[a-z]+")) { throw new ValidatorException(new FacesMessage("Formato de mail

incorrecto")); } 124. } 125. 126. }

En esta clase agregamos nuevas propiedades a la clase con respecto al ejemplo anterior:
1.

2.
3.

4.

private private private private

String txtMail; Date txtFechaNac; double txtSueldoBas; int txtSectorEmpr;

Las anteriores son las propiedades que se corresponderan con los inputtext de la vista. Tambin agregamos esta propiedad a la clase: SimpleDateFormat fecha = new SimpleDateFormat("dd/MM/yyyy"); Esta propiedad es para darle formato a la fecha. Tambin en el cdigo observamos que tenemos un nuevo mtodo que se llama validaMail, este mtodo es el que ser invocado en la vista cuando se quiera validar un mail, a este mtodo lo podramos incluir en otra clase, pero al ser uno solo en este caso lo dejamos en la clase lista, ustedes podran ponerlo tranquilamente en otra clase para tener un cdigo mas ordenado. Ahora nos ocupamos de nuestra vista index.xhtml. Consecuente de lo anterior agregamos nuevos inputtext a nuestra vista index.xhtml, y tambin columnas a nuestro datatable. A continuacin mostramos como queda nuestro index.xhtml
1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2. <html xmlns="http://www.w3.org/1999/xhtml" 3. xmlns:h="http://java.sun.com/jsf/html" 4. xmlns:f="http://java.sun.com/jsf/core"> 5. <h:head> 6. <title>Ejemplo JSF</title> 7. </h:head> 8. <h:body> 9. <h:form> 10. <h:dataTable id="tabla" value="#{lista.lista}" binding="#{lista.tabla}" var="lis"> 11. <h:column> 12. <f:facet name="header"> 13. <h:outputText value="NOMBRE"/> 14. </f:facet> 15. <h:outputText value="#{lis.nombre}"/> 16. </h:column> 17. <h:column> 18. <f:facet name="header"> 19. <h:outputText value="APELLIDO"/> 20. </f:facet> 21. <h:outputText value="#{lis.apellido}"/> 22. </h:column> 23. <h:column> 24. <f:facet name="header"> 25. <h:outputText value="DIRECCION"/> 26. </f:facet> 27. <h:outputText value="#{lis.direccion}"/> 28. </h:column> 29. <h:column> 30. <f:facet name="header"> 31. <h:outputText value="FECHA NAC."/> 32. </f:facet> 33. <h:outputText value="#{lis.fechaNacimiento}"/> 34. </h:column> 35. <h:column> 36. <f:facet name="header"> 37. <h:outputText value="SUELDO BASICO"/> 38. </f:facet> 39. <h:outputText value="#{lis.sueldoBasico}"/> 40. </h:column> 41. <h:column>
http://www.compujuy.com.ar/postx.php?id=83 26 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

42.
43.

44.
45.

46.
47.

48.
49.

50.
51.

52.
53.

54.
55.

56.
57.

58.
59.

60.
61.

62.
63.

64.
65.

66.
67.

68.
69.

70.
71.

72.
73.

74.
75.

76.
77.

78.
79.

80.
81.

82.
83.

84.
85.

86.
87.

88.
89.

90.
91.

92.
93.

94.
95.

<f:facet name="header"> <h:outputText value="SECTOR EMPRESA"/> </f:facet> <h:outputText value="#{lis.sectorEmpresa}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="MAIL"/> </f:facet> <h:outputText value="#{lis.mail}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="SELECCIONAR"/> </f:facet> <h:commandLink action="#{lista.seleccionLista}"> SELECCION </h:commandLink> </h:column> </h:dataTable> </h:form> <br></br> <h:form> <h:outputLabel for="nombre"> Nombre </h:outputLabel> <h:inputText id="nombre" required="true" value="#{lista.txtNombre}"> <f:validateLength minimum="3" maximum="30"/></h:inputText> <h:message for="nombre"></h:message><br></br> <h:outputLabel for="apellido"> Apellido </h:outputLabel> <h:inputText id="apellido" required="true" value="#{lista.txtApellido}"> <f:validateLength minimum="3" maximum="30"/></h:inputText> <h:message for="apellido"></h:message><br></br> <h:outputLabel for="direccion"> Direccion </h:outputLabel> <h:inputText id="direccion" required="true" value="#{lista.txtDireccion}"> <f:validateLength minimum="3" maximum="50"/></h:inputText> <h:message for="direccion"></h:message><br></br> <h:outputLabel for="mail"> Mail </h:outputLabel> <h:inputText id="mail" required="true" validator="#{lista.validaMail}" value="#{lista.txtMail}" ></h:inputText> <h:message for="mail"></h:message><br></br> <h:outputLabel for="fechaNac"> Fecha de Nac. </h:outputLabel> <h:inputText id="fechaNac" required="true" value="#{lista.txtFechaNac}"> <f:convertDateTime pattern="dd/MM/yyyy"/></h:inputText> <h:message for="fechaNac"></h:message><br></br> <h:outputLabel for="sectorEmpr"> Sector de la Empresa </h:outputLabel> <h:inputText id="sectorEmpr" required="true" value="#{lista.txtSectorEmpr}"> <f:validateLongRange minimum="0" maximum="11"/></h:inputText> <h:message for="sectorEmpr"></h:message><br></br> <h:outputLabel for="sueldoBasico"> Sueldo Basico </h:outputLabel> <h:inputText id="sueldoBasico" required="true" converter="#{Double}" value="#{lista.txtSueldoBas}"> <f:validateDoubleRange minimum="0" maximum="5000"/> </h:inputText> <h:message for="sueldoBasico"></h:message><br></br> <h:commandButton value="Agregar" action="#{lista.cargarLista}"></h:commandButton> <h:commandButton value="Modificar" action="#{lista.modificarLista}"></h:commandButton> <h:commandButton value="Eliminar" action="#{lista.eliminarLista}"></h:commandButton> </h:form> </h:body>

96.
97.

98.
99. </html>

Como se ve en el cdigo de index.xhtml, se agregaron las columnas de la misma manera que las anteriores, lo nuevo que aparece aparece a continuacin:
1. <h:outputLabel for="sueldoBasico"> Sueldo Basico </h:outputLabel> 2. <h:inputText id="sueldoBasico" required="true" converter="#{Double}" value="#{lista.txtSueldoBas}"> 3. <f:validateLongRange minimum="0" maximum="5000"/> </h:inputText> 4. <h:message for="sueldoBasico"></h:message><br></br>

<h:outputLabel/> : esta tag es la etiqueta que nos muestra la descripcion del campo a ingresar, en este caso el atributo for indica que pertenece al campo de id sueldoBasico, y este se dibujara al costado del campo de entrada inputtext sueldoBasico. <h:inputText/> : este tag no es mas que el campo de entrada con los siguientes atributos
Required: en este caso, establecido a true nos indica que el campo es requerido y no tiene que ser nulo, caso contrario nos saltara una excepsion con su correspondiente
http://www.compujuy.com.ar/postx.php?id=83 27 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

mensaje. Converter: este atributo nos indica a que tipo de dato ser convertido para que se corresponda con el tipo de dato java declarado en el atributo value. Value : el valor con el cual se corresponde con una determinada propiedad en el backbean, en este caso el bean lista.

<f:validateLongRange/> : este es el tag que que nos implementa la validacion del dato, en este caso especificamos que del tipo de validacin de rango de un tipo de dato doubl. Este tag tiene los siguientes atributos:
Mnimum: este atributo nos dice cual es el valor minimo que podemos aceptar, en nuestro caso al valor minimo es 0. Mximum = este atributo nos dice cual es el valor mximo que podemos aceptar, en nuestro caso al valor mximo es 5000.

<h:message/> : en esta etiqueta se muestran los mensajes que nos da las excepciones al no cumplirse una validacin o bien al haber un error en la conversin, en este tag se muestran por defecto los mensajes estndares de jsf. De todo esto difiere el campo de entrada fechaNac, en la cual para la conversin utilizamos el tag jsf core <f:convertDateTime pattern="dd/MM/yyyy"/></h:inputText> En este tenemos la posibilidad de especificar mediante el atributo pattern el formato de la fecha. Olvidamos decir que tambin difiere el campo de entrada mail, en el atributo validator, y no incorporamos el validador estndar de jsf core, el valor del atributo validator apunta a un mtodo de la clase lista, en este caso al mtodo validaMail, que es un mtodo personalizado para la validacin. Con esto ya estamos en condiciones de ejecutar nuestro proyecto, iniciamos el servidor y lo ejecutamos

Observamos que se ejecuta, pero vemos que los mensajes que nos muestran, ya sea el de conversin o el de validacin estn en ingles, y necesitamos un mensajes mas personalizado. Para ello vamos a crear un archivo de propiedades: En este caso lo crearemos sobre el paquete predeterminado, click derecho y en nuevo->otro

Elegimos otro y en la zona derecha un archivo de propiedades

http://www.compujuy.com.ar/postx.php?id=83

28 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

Le damos el nombre en este caso error y luego en terminar.

Ya tenemos nuestro archivo de propiedades creado. A continuacin mostramos los distintos mensajes JavaServer Faces estndares que se muestran al usuario debido a errores de conversin y validacin en la capa de presentacin.
UIInput Llave (key) Mensaje estndar Mensaje alternativo

{0}: javax.faces.component.UIInput.CONVERSION Conversion error occurred javax.faces.component.UIInput.REQUIRED Ejemplo:Registrar a un usuario en un sitio Web {0}: Validation Campo Error: Value is obligatorio required {0}: An error occurred when processing your submitted information

javax.faces.component.UIInput.UPDATE

Converter Llave (key) Mensaje estndar {2}: ''{0}'' must be a signed decimal number Mensaje alternativo Valor ''{0}'' tiene que ser un nmero decimal

javax.faces.converter.BigDecimalConverter.DECIMAL

javax.faces.converter.BigIntegerConverter.BIGINTEGER

{2}: ''{0}'' must be a Valor "{0}" number tiene que ser consisting numrico of one or more digits {1}: ''{0}'' must be 'true' or 'false'. {2}: ''{0}'' Valor "{0}" tiene que ser verdadero o falso
29 / 264

javax.faces.converter.BooleanConverter.BOOLEAN

http://www.compujuy.com.ar/postx.php?id=83

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

javax.faces.converter.ByteConverter.BYTE

must be a number between 0 and 255 {1}: ''{0}'' must be a valid character {2}: ''{0}'' could not be understood as a date {2}: ''{0}'' could not be understood as a time {2}: ''{0}'' could not be understood as a date and time

Valor ''{0}'' tiene que ser un nmero entre 0 y 255 Valor ''{0}'' tiene que ser un carctervalido Valor ''{0}'' no se puede interpretar como una fecha Valor ''{0}'' no se puede interpretar como una hora Valor ''{0}'' no se puede interpretar como fecha y hora

javax.faces.converter.CharacterConverter.CHARACTER

javax.faces.converter.DateTimeConverter.DATE

javax.faces.converter.DateTimeConverter.TIME

javax.faces.converter.DateTimeConverter.DATETIME

{1}: A 'pattern' or 'type' javax.faces.converter.DateTimeConverter.PATTERN_TYPE attribute must be specified to convert the value ''{0}'' {2}:''{0}'' must be a Valor "{0}" number tiene que ser consisting numrico of one or more digits {2}:''{0}'' must be convertible to an enum

javax.faces.converter.DoubleConverter.DOUBLE

javax.faces.converter.EnumConverter.ENUM

{1}:''{0}'' must be convertible to an enum javax.faces.converter.EnumConverter.ENUM_NO_CLASS from the enum, but no enum class provided {2}: ''{0}'' must be a number Valor "{0}" consisting tiene que ser of numrico one or more digits {2}:''{0}'' must be a Valor "{0}" number tiene que ser consisting numrico of one or more digits {2}:''{0}'' must be a number Valor "{0}" consisting tiene que ser of numrico one or more digits {2}:''{0}'' could not be understood as a currency value {2}: ''{0}'' could not be understood as a percentage Valor ''{0}'' no se puede interpretar como una moneda

javax.faces.converter.FloatConverter.FLOAT

javax.faces.converter.IntegerConverter.INTEGER Ejemplo:Registrar a un usuario en un sitio Web

javax.faces.converter.LongConverter.LONG

javax.faces.converter.NumberConverter.CURRENCY

javax.faces.converter.NumberConverter.PERCENT

Valor ''{0}'' no se puede interpretar como un porcentaje


30 / 264

http://www.compujuy.com.ar/postx.php?id=83

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

javax.faces.converter.NumberConverter.NUMBER

{2}: ''{0}'' is Valor "{0}" not a tiene que ser number numrico {2}: ''{0}'' is Valor "{0}" no not a es un patrn number numrico pattern {2}: ''{0}'' must be a number Valor "{0}" consisting tiene que ser of numrico one or more digits {1}: Could not convert ''{0}'' to a string

javax.faces.converter.NumberConverter.PATTERN

javax.faces.converter.ShortConverter.SHORT

javax.faces.converter.STRING

Validator Llave (key) Mensaje Mensaje estndar alternativo {1}: Validation Error: Value is greater than allowable maximum of {0} {1}: Validation Error: Value is less than allowable minimum of {0} Longitud mayor que el mximo permitido de {0}

javax.faces.validator.DoubleRangeValidator.MAXIMUM

javax.faces.validator.DoubleRangeValidator.MINIMUM

Longitud menor que el mnimo permitido de {0}

{2}: Validation Error: Specified attribute javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE is not between the expected values of {0} and {1} {0}: Validation Error: Value is not of the correct type {1}: Validation Error: Value is greater than allowable maximum of {0} {1}: Validation Error: Value is less than allowable minimum of {0} {1}: Validation Error: Value is greater than allowable maximum of {0}

Valor no se encuentra entre {0} y {1}

javax.faces.validator.DoubleRangeValidator.TYPE

javax.faces.validator.LengthValidator.MAXIMUM

Longitud mayor que el mximo permitido de {0}

javax.faces.validator.LengthValidator.MINIMUM Ejemplo:Registrar a un usuario en un sitio Web

Longitud menor que el mnimo permitido de {0}

javax.faces.validator.LongRangeValidator.MAXIMUM

Longitud mayor que el mximo permitido de {0}

http://www.compujuy.com.ar/postx.php?id=83

31 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

javax.faces.validator.LongRangeValidator.MINIMUM

{1}: Validation Error Value is less than allowable minimum of {0} {2}: Validation Error: Specified attribute is not between the expected values of {0} and {1} {0}: Validation Error: Value is not of the correct type

Longitud menor que el mnimo permitido de {0}

javax.faces.validator.LongRangeValidator.NOT_IN_RANGE

Valor no se encuentra entre {0} y {1}

javax.faces.validator.LongRangeValidator.TYPE

En el archivo de propiedades indicaremos la clave con su correspondiente valor. Nuestro archivo error.propiertes queda de la siguiente manera
javax.faces.component.UIInput.REQUIRED="Campo obligatorio" javax.faces.validator.DoubleRangeValidator.MAXIMUM = El valor debe ser inferior a "{0}" javax.faces.validator.DoubleRangeValidator.MINIMUM = El valor debe ser superior a "{0}" javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE = El valor no se encuentra en el rango entre {0} y {1}. javax.faces.validator.DoubleRangeValidator.TYPE = El valor no es del tipo correcto javax.faces.validator.LengthValidator.MAXIMUM =El valor debe ser inferior a "{0}" caracteres javax.faces.validator.LengthValidator.MINIMUM = El valor debe ser superior a "{0}" caracteres javax.faces.validator.LongRangeValidator.MAXIMUM = El valor debe ser inferior a ''{0}'' javax.faces.validator.LongRangeValidator.MINIMUM = El valor debe ser superior a ''{0}'' javax.faces.validator.LongRangeValidator.NOT_IN_RANGE = El valor no se encuentra en el rango entre {0} y {1}. javax.faces.validator.LongRangeValidator.TYPE = El valor no es del tipo correcto. javax.faces.converter.DateTimeConverter.DATE = ''{0}'' No es un formato valido de fecha, ejemplo 22/02/1986. javax.faces.converter.DoubleConverter.DOUBLE = ''{0}'' No es un numero decimal vlido. javax.faces.converter.IntegerConverter.INTEGER = ''{0}'' No numero entero valido.

Bien ahora hay qye reflejar ese archivo en nuestro faceconfig.xml, que queda de la siguiente manera
1. <?xml version='1.0' encoding='UTF-8'?>

2. <!-- =========== FULL CONFIGURATION FILE ================================== -->


3. <faces-config version="2.0" 4. xmlns="http://java.sun.com/xml/ns/javaee" 5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 6. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"> 7. <managed-bean> 8. <managed-bean-class>Lista</managed-bean-class> 9. <managed-bean-name>lista</managed-bean-name> 10. <managed-bean-scope>session</managed-bean-scope> 11. </managed-bean>

12. <application> 13. <message-bundle>error</message-bundle> 14. </application>


15. </faces-config>

Las lineas de azul son las nuevas, en ella indicamos que los mensajes estaran en un archivo llamado error que se encuentra en el paquete prederminado Nuestro proyecto de archivos queda de la siguiente manera
http://www.compujuy.com.ar/postx.php?id=83 32 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

Bien ahora ya estamos en condiciones de ejecutar nuevamente nuestro proyecto, con los mensajes de conversin y validacin personalizados. Presionamos el boton agregar sin rellenar ningun campo

Nos muestra el mensaje de campo vacio (required="true") Verificamos una conversion

Insertamos en sector y sueldo letras y nos muestra el mensaje de error personalizado. Verificamos una validacion

http://www.compujuy.com.ar/postx.php?id=83

33 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

En este caso ingresamos un mail invalido, y fecha de nacimiento invalida Bien observamos que todo salio bien, ahora lo completamos de manera correcta y observamos que se agrega a la tabla

Bueno, ya tenemos na tabla en la cual, agregamos, modificamos y eliminamos filas de uan datatablea, ahora tambien validamos los datos antes de porder agregarlos a la tabla. En el proximo post que sera muy pronto le aplicaremos un poco de estilo pra que quede bonita, asi terminamos con este sencillo post, hasta pronto.SI DESEAN EL PROYECTO PUEDE SER SUBIDO SOLO PIDANLO..si les sirvio comenten no cuesta nada

FABRICIO comento...

el dia 20/02/2011 a las 17:42

Perfecto, estoy siguiendo al pie de la letra, todo OK..!! Esperando el siguiente post.....

Mary comento...

el dia 21/02/2011 a las 13:32

Muy buen post, gracias. justo buscaba algo asi


carlos comento...
http://www.compujuy.com.ar/postx.php?id=83

el dia 16/03/2011 a las 03:04

si puedes subirlo poor favor...es que si me hace falta para un


34 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA me hace JSF. si puedes subirlo poor favor...es que si DATATABLE falta

para un

15/12/2012

proyecto... gracias...lo estoy corriendo pero me manda este erroor /index.xhtml @77,81 value="#{lista.txtNombre}": Target Unreachable, identifier 'lista' resolved to null
rafa comento...
el dia 16/03/2011 a las 22:22

Q TAL CARLOS, AHI SUBI EL PROYECTO, PERO DEL ULTIMO POST DONDE ESTA INCLUIDO ESTE-- ESPERO QUE TE SIRVA, ESTE ES EL LINK http://www.compujuy.com.ar/postx.php?id=84
Carlos comento...
el dia 17/03/2011 a las 00:44

esta bien muchas gracias ya logre que me corriera la validacion...y esta muy bueno este post...espero que sigas haciendo mas de esto con jsf...por cierto esto no guarda los datos en una base de datos verdad? haber cuando haces un ejemplo asi, que guarde los datos y los elimine de una base datos mysql... pero bueno muchas gracias...excelente saludos desde mexico
rafa comento...
el dia 18/03/2011 a las 20:53

"Pronto se viene un post con datos en una base de datos MySql.... saludos"
Carlos comento...
el dia 10/05/2011 a las 23:28

hola que tal, tengo una pregunta lo que pasa es que quiero guardar un id autoincrement en otra tabla, pero tendria un problema llamado concurrencia, como podria evitar eso. con jpa o mediante un bean normal....podrian ayudarme?
Jekyll comento...
el dia 06/10/2011 a las 14:12

Que ocurre si por ejemplo tengo un boton cancelar que me limpia los campos? como evito que este boton intente validar los campos?
rafa comento...
el dia 06/10/2011 a las 14:48

Que tal Jekyll, pues una maner facil de solucionar es es agregar la propiedad partialSubmit="true" al boton cancelar, pero eso si usando icefaces... en este post esta contemplado algo parecido pero sobre un commandlink ... http://compujuy.com.ar/postx.php?id=88
fabr comento...
el dia 26/10/2011 a las 16:32

muy bueno bastante facil de entender.solo una duda puedo agregar mas de un 'validator'?.
rafa comento...
el dia 26/10/2011 a las 18:47

Que tal Fabr, claro que se puede agregar mas de un validator....


John comento...
el dia 28/10/2012 a las 15:56

Ey hombre, se valora bastante tu apoyo para con los que recin empezamos en este
http://www.compujuy.com.ar/postx.php?id=83 35 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF. empezamos se valora bastante tu apoyo para con los que recin

en este

15/12/2012

mundo... Te deseo lo mejor y que sigas creciendo en todos los aspectos... Saludos
Gustavo comento...
el dia 27/11/2012 a las 20:34

MUY BUENO!! ES ALGUO TAN NECESARIO Y PERFECTAMENTE EXPLICADO...TODO PARECE TAN FACIL....ESTE EJEMPLO YA LO PROBE EN LAS NUBES PERFECTO!! .....GRACIAS NUEVAMENTE
WATSON comento...
el dia 30/11/2012 a las 18:11

ESTA BUENO EL EJEMPLITO... ME SIRVIO EN ALGUNAS DUDAS QUE TRAIA JEJE... SALUDOS Y GRACIAS!!!
INGRESA TU COMENTARIO

NOMBRE MAIL

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=83

36 / 264

COMPUJUY

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

31

EJECUTAR CODIGO JAVA SCRIPT EN JAVA

Posteado por :
rafa

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1470) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5441) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4669)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

CATEGORIAS

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

A partir del jdk 6 java posee la posibilidad de poder ejecutar cdigo Java Script en una aplicacin JSE, o una JEE del lado del servidor . Quizas algn dia nos encontremos en la necesidad de ejecutar cdigo java script, pero dentro de una aplicacin java sin la necesidad de abrir un navegador.
4129 Lecturas 5 Comentarios

Leer mas.....

JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

29

HOLA MUNDO WEB (2) CON JSF (JAVA)

Posteado por :
rafa

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1470) Facelets en JSF 2.0 (Netbeans 6.9) (5441) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4669) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6816) JPA EN NETBEANS CON MYSQL (7661) APLICAR ESTILO CSS EN JSF (9673)

En este post haremos el hola mundo, pero no como en el post anterior en la cual solo mostrbamos el mensaje el cargarse la pagina, sino que ahora lo haremos al presionar un botn de la pagina jsp. Para ello haremos uso de lo creado en el post anterior (hola mundo con jsf).
1958 Lecturas 4 Comentarios Leer mas.....

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4992) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10635)

22

HOLA MUNDO WEB CON JSF (JAVA)

Posteado por :
rafa

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7794) AJAX CON JQUERY (PHP) (5321) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

Actualidad Informatica!!

JavaServer Faces (JSF) es una tecnologa 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 tecnologa que permite hacer el despliegue de las pginas.
4770 Lecturas 9 Comentarios Leer mas.....

DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (221)

CLICK AQUI

COMPARTI ESTE SITIO

http://www.compujuy.com.ar/index.php?pagAct=3&pagCat=1

08

PRUEBAS UNITARIAS CON JUNIT EN

Posteado por :
rafa

Interes en gral.!!

37 / 264

COMPUJUY

08

15/12/2012

JAVA.

rafa

Interes en gral.!!
Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (790) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (205) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

Dentro de las distintas fases del desarrollo de software, adems de los requerimientos, diseo, desarrollo etc., una de las ms importantes es la fase de pruebas, en esta se comp rueba si nuestro cdigo desarrollado realmente esta haciendo con lo que se especifico, por otra parte ac en donde se verifica que el proyecto cumpla con los requerimientos que fueron especificados por el cliente en la fase de analisis. Existen varios 2755 Lecturas 9 Comentarios Leer mas..... tipos de pruebas, sin embargo, algunas de las ms bsicas que existen son las pruebas unitarias que prueban los distintos mdulos que conforman el proyecto y que son el inicio para la correcta realizacin de los demas tipos de pruebas, en nuestro caso son las pruebasPosteado por : realizadas 13 COMANDOS DOS EN JAVA rafa sobre cada clase desarrollada analizando cada uno de los mtodos de la misma.

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

Map

Satellite

Hybrid

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

Una vez me vi en la necesidad de querer ejecutar comandos DOS, era para una materia que se llamaba Compiladores e Intrpretes, ya que necesitaba desde java poder compilar directamente un archivo de c++. Razn de este post para explicar cmo poder realizar un ping por ej. Desde una aplicacin en java, haciendo uso de DOS.
2423 Lecturas 6 Comentarios Leer mas.....

30 31

12

CLIENTE FTP EN JAVA

Posteado por :
rafa

En esta ocasin veremos como acceder desde un programa cliente en java, a un servidor FTP, podremos logearnos, listar nuestros directorios, archivos, eliminar etc.. En este ejemplo lo haremos desde la salida estndar de java, pero no habra problema si nos quisiramos extender para hacerlo desde un JFrame Swing o bien desde un a pagina JSP. Para empezar antes que nada necesitamos la librera commons-net-2.0., que 4022 Lecturas Leer mas..... la podemos descargar desde aqu 12 Comentarios commons-net-ftp-2.0.jar Posteado por : O05 desde el sitio oficial A JPA (JAVA bien INTRODUCCION rafa PERSISTENCE API) CRUD http://commons.apache.org/net/download_net.cgi De paso en este sitio se encuentra toda la documentacin de la misma.

http://www.compujuy.com.ar/index.php?pagAct=3&pagCat=1

38 / 264

COMPUJUY

15/12/2012

Java Persistence API (JPA) proporciona un modelo de persistencia basado en POJO"s para mapear bases de datos relacionales en Java. El Java Persistence API fue desarrollado por el grupo de expertos de EJB 3.0, aunque su uso no se limita a los componentes software EJB. Tambin 8523 Lecturas 14 Comentarios Leer mas..... puede utilizarse directamente en aplicaciones web y aplicaciones clientes, como lo haremos en este post ; incluso fuera de la plataforma Java EE, por ejemplo, en aplicaciones Java SE. En su definicin, se han DE UNA BD MYSQL EN de los Posteado por : principales 03 CREACION combinado ideas y conceptos frameworks de persistencia como Hibernate, Toplink y JDO,rafade las y NETBEANS 6.8 versiones anteriores de EJB. Todos estos cuentan actualmente con una implementacin JPA.

En este post crearemos una base de datos MySql en el ide Netbeans 6.8, para ello vamos a utilizar las siguientes herramientas:
Tener instalado Netbeans 6.8 o 6.9 Tener instalado MySql 5.0

6797 Lecturas

12 Comentarios

Leer mas.....

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/index.php?pagAct=3&pagCat=1

39 / 264

COMPUJUY

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

03

HOLA MUNDO EN JAVA CON NETBEANS 6.8

Posteado por :
rafa

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1470) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5441) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4669)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

Primeramente crearemos el tpico hola mundo en java sobre lo que seria DOS, pero en este caso en netbeans lo veremos sobre el mismo ide y no sobre una pantalla negra y para terminar lo haremos desde un JFrame, que seria una simple ventana con un botn y una caja de texto. mas..... 2549 Lecturas 5 Comentarios Leer Bien, primeramente procederemos a la creacin de un nuevo proyecto, para eso vamos a archivos-> Proyecto Nuevo->Java->Aplicacin Java 03 CREACION DE UN PROYECTO Y TIPS Posteado por : rafa EN NETBEANS 6.X

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1470) Facelets en JSF 2.0 (Netbeans 6.9) (5441) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4669) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6816) JPA EN NETBEANS CON MYSQL (7661) APLICAR ESTILO CSS EN JSF (9673)

En esta oportunidad veremos cmo crear un proyecto en netbeans, las caractersticas principales que hay que tener a la hora de crear uno tanto en php como en java, y de paso veremos algunos tips que nos sern de gran ayuda a la hora de programar en este gran ide. A continuacin veremos cmo crear nuestro primer proyecto, para ello 2330 Proyecto Leer mas..... vamos a Archivo -> Lecturas Nuevo 1 Comentarios

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4992) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10635)

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7794) AJAX CON JQUERY (PHP) (5321) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (221)
http://www.compujuy.com.ar/index.php?pagAct=4&pagCat=1

CLICK AQUI

COMPARTI ESTE SITIO

40 / 264

COMPUJUY

15/12/2012

Interes en gral.!!
Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (790) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (205) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

Map

Satellite

Hybrid

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

4
COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/index.php?pagAct=4&pagCat=1

41 / 264

CREACION DE UN PROYECTO Y TIPS EN NETBEANS 6.X

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

CREACION DE UN PROYECTO Y TIPS EN NETBEANS 6.X

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

CATEGORIAS

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

En esta oportunidad veremos cmo crear un proyecto en netbeans, las caractersticas principales que hay que tener a la hora de crear uno tanto en php como en java, y de paso veremos algunos tips que nos sern de gran ayuda a la hora de programar en este gran ide. A continuacin veremos cmo crear nuestro primer proyecto, para ello vamos a Archivo -> Proyecto Nuevo Se nos abre la siguiente ventana, en el men izquierdo elegimos la categora, sea que tipo de tecnologa usaremos, ya sea Java, Java Web, JEE, JME, PHP, etc., una vez que elegimos la categora, en el men de la derecha nos da la posibilidad de elegir el tipo de proyecto dentro de la categora elegida, por ej. En este elegimos la categora Java, y el proyecto va a ser del tipo Aplicacin Java, elegimos la misma y le damos siguiente

JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6819) JPA EN NETBEANS CON MYSQL (7667) APLICAR ESTILO CSS EN JSF (9674)

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796)

http://www.compujuy.com.ar/postx.php?id=39

42 / 264

CREACION DE UN PROYECTO Y TIPS EN NETBEANS 6.X

15/12/2012

AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223) CLICK AQUI

COMPARTI ESTE SITIO

Interes en gral.!!
Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

En la ventana anterior indicaremos primeramente el nombre del proyecto (rojo), en este caso Aplicacin luego indicaremos la ubicacin del proyecto que ser sobre c:\ , la carpeta donde se almacenara el proyecto ser autocompletada por netbeans lo cual se llamara igual que el proyecto Aplicacin en nuestra ventana aparece con el path C:\Aplicacion Luego tenemos la posibilidad de tildar la opcin (azul) si queremos utilizar una carpeta dedicada para almacenar bibliotecas, este caso es vlido si por ejemplo somos distintos grupos de trabajo y usamos las mismas bibliotecas de clases, y ambos grupos tenemos la posibilidad de modificar las mismas, entonces la biblioteca de clases ser la misma para todos. Tambin tenemos la opcin (verde) de de indicarle al netbeans que nos cree el Main principal, sea nuestro mtodo Main esttico final Y por ultimo en esta ventana la opcin de indicarle al ide que configure al proyecto reciente como principal es decir que lo marque con negrita distinto del resto, para que por ejemplo al ejecutar sea este el que lo haga y no otro proyecto. Ya tenemos creado de manera fcil nuestro primer proyecto java J2SE, en la cual en el rbol de proyectos nos queda de la siguiente manera

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

Map

Satellite

Hybrid

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

En primer lugar con el icono de la tasita tenemos nuestro proyecto como raz, tal cual con el nombre que le dimos, luego dentro de este rbol tenemos los siguientes directorios Paquetes de fuentes: en este se almacenaran todo el cdigo fuente creado por nosotros, este se corresponde con el siguiente path c:\Aplicacion\src\aplicacion Paquetes de pruebas: a este lo usaremos en el caso de querer trabajar con conjunto de bibliotecas que son utilizadas en programacin para hacer pruebas unitarias de aplicaciones Java, es opcional trabajar con esto. Este cdigo se almacena en directorios diferentes ya que como son de prueba no van incluidas junto al cdigo inherente a la aplicacin. Bibliotecas: aqu se almacenara las bibliotecas o frameworks que utilizaremos, como ser el caso de que trabajemos con mysql, las bibliotecas de conexin necesarias para trabajar con el motor de BD debern estar almacenadas aqu, ya que el netbeans aqu lo buscara, a menos que le indiquemos de que no sea as. Bibliotecas de pruebas: de la misma manera que el anterior aqu se almacenaran las bibliotecas pero solamente para los casos de pruebas como ser la bibliotecas de Junit, ya que las mismas son de prueba tan solamente y no deben estar junto e las bibliotecas del proyecto. Luego tenemos las pestaas de archivos en la cual se encuentras listados los
http://www.compujuy.com.ar/postx.php?id=39 43 / 264

CREACION DE UN PROYECTO Y TIPS EN NETBEANS 6.X en la Luego tenemos las pestaas de archivos

cual se encuentras listados los directorios reales en donde est almacenado el proyecto, tenemos las siguientes carpetas

15/12/2012

Nbproject: en la cual se encuentran los archivos de configuracin necesarios para que el netbeans lo reconozca como proyecto generado en el mismo. Src: aqu se almacena todo nuestro cdigo fuente generado por nosotros, todos los paquetes y los .java y .class. Test: se almacenan en este nuestras pruebas Luego tambin tenemos los archivos build.xml que contiene el script que usa ant (herramienta Open-Source utilizada en la compilacin y creacin de programas Java, lo que sera el make para linixeros) para compilar, ejecutar, etctera. Se encarga de generar "build/" a partir de "src/", copiando algunos ficheros que puedan resultar imprescindibles a los lugares apropiados de "build/" (por ejemplo, imgenes o ficheros de propiedades). El manifest.mf es necesario para que el netbeans genere el .jar de la aplicacin. Por ltimo la pestaa de prestaciones se encuentras los servicios externos que podramos necesitar como ser

Base de datos: aqu se tendr que configurar las distintas conexiones a las base de datos que utilizaremos en nuestras aplicaciones desde el netbeans. Servicios Web: aqu se proporcionan y configuran los diferentes servicios web para trabajar con tecnologas en diferentes lenguajes o plataformas. Servidores: aqu se configuran los servidores para nuestras aplicacin Web en el caso de java aqu configuraremos el Apache Tomcat o el Glassfish, que en el caso de aplicaciones desktop no nos servir. Constructores de Hudson:netbeasn trae por defecto configurado Hudson como servidor de integracin continua, para que construya nuestro proyecto de forma automtica si hay algn cambio en el repositorio de de cdigo. y nos informe por email en caso de que se produzca algn error, entre otras cosas ms. Instancias Kenay: aqu se configura el CVS, para el controlado de versiones de un proyecto Reportes trackers: se configura la herramienta de seguimiento de errores y del ciclo de desarrollo de software (bugzilla, jira etc.), que nos da soporte en sus distintas fases, especialmente en las de desarrollo, pruebas y mantenimiento. Ahora veremos los pasos ms importantes a la hora de desarrollar en este ide
CREACION DE UN PAQUETE

Los paquetes en java son una forma de organizacin de nuestros archivos fuentes, ya sea un archivo .class, .java o de configuracin como .xml etc. Esto es sencillo solo tenemos que darle click derecho sobre el paquete de fuentes ->Nuevo->Paquete Java
http://www.compujuy.com.ar/postx.php?id=39 44 / 264

CREACION DE UN PROYECTO Y TIPS EN NETBEANS 6.X

15/12/2012

En la ventana le damos el nombre, y la ubicacin del paquete que en este caso es sobre el paquete de fuentes, y en terminar.
CREACION DE UNA CLASE

Para ello vamos al proyecto, y le damos click derecho en el paquete en donde queremos que se cree la clase, en este caso crearemos la clase Alumnos dentro del paquete aplicacin, para ello nos paramos con el puntero sobre el paquete aplicacin, click derecho Nuevo-> Clase Java

http://www.compujuy.com.ar/postx.php?id=39

45 / 264

CREACION DE UN PROYECTO Y TIPS EN NETBEANS 6.X

15/12/2012

En esta ventana le damos el nombre de la clase, tambin podemos cambiar las ubicaciones, pero como le dimos click derecho sobre el paquete aplicacin que est en el paquete de fuentes el netbeans en la ventana pone por defecto tal ubicacin.
CREACION DE PROPIEDADES, CONSTRUCTORES, METODOS, GETTERS Y SETTERS

Recordemos que esto tambin lo podemos hacer directamente tipeando pero en este caso estamos tratando de explicar cmo hacerlo desde el netbeans. Abrimos la clase Alumnos que creamos, presionamos Alt + Ins ubicados sobre el cdigo (tambin lo podemos hacerlo con un click derecho sobre el cdigo, luego con el izquierdo en insertar cdigo) y nos aparece un men textual

En la que podemos entre las principales opciones crear constructores Agregar constructores, con solo darle click sobre constructor y ya tenemos el mismo

Agregar propiedades

http://www.compujuy.com.ar/postx.php?id=39

46 / 264

CREACION DE UN PROYECTO Y TIPS EN NETBEANS 6.X

15/12/2012

En esta ventana le damos el nombre, el tipo, la inicializacin, si queremos los getters y setters entre las ms principales, no todas son obligatorias, con el nombre y tipo basta. creamos la propiedad direccion

en este caso crearemos el get y set de direccion, por que es la propiedad que no los tiene en esta clase

tildamos las propiedades y ya tenemos generados nuestros getters y setters de manera rpida
PRINCIPALES AVISOS Y SUGERENCIAS DEL IDE

Antes de explicar un poco esto recordemos que esta es la configuracin por defecto, si la cambiamos podemos hacer que las mismas nos se muestren
http://www.compujuy.com.ar/postx.php?id=39 47 / 264

CREACION DEsi la cambiamos podemos hacer defecto, UN PROYECTO Y TIPS EN NETBEANS 6.X

que las mismas nos se muestren o que las sugerencias sean de distinto color o hasta con otros iconos. En la siguiente clase nos subraya la propiedad direccin con gris, el ide nos est indicando que a esa propiedad de la clase no la estamos usando para nada y nos sugiere usarla o eliminarla.

15/12/2012

A continuacion seleccionamos tales lneas y vemos que nos aparece un foquito en el margen izquierdo, el ide nos est indicando que tiene algunas posibles sugerencias. Para verlas le damos click sobre el foquito o bien presionamos las teclas Alt + Enter, y ah en el men textual nos aparece las posibles acciones a realizar.

Los errores nos indica el ide mediante un subrayado rojo como lo muestra la imagen En este caso el ide nos informa que es lo que est pasando, nos aparece en el margen izquierdo un foquito con un signo de admiracin rojo, le damos click en el mismo y nos aparecen sugerencias o bien mediante las teclas Alt + Enter sobre el subrayado.

Bien estas son algunas de las facilidades que tenemos con el netbeans, obvio que no se explicaron todas , pero espero que haya servido como un
http://www.compujuy.com.ar/postx.php?id=39 48 / 264

CREACION DE no PROYECTO Y TIPS EN NETBEANS 6.Xespero que haya obvio que UN se explicaron todas , pero

servido como un simple empujn a usar esta gran herramienta a la hora de desarrollar ya sea en java, php, c, c++ etc.

15/12/2012

enrique comento...

el dia 24/04/2011 a las 20:48

Pero no indicas como usar el package en una aplicacion desktop.... por lo demas muy bien.
INGRESA TU COMENTARIO

NOMBRE MAIL

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=39

49 / 264

HOLA MUNDO EN JAVA CON NETBEANS 6.8

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

HOLA MUNDO EN JAVA CON NETBEANS 6.8

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

Primeramente crearemos el tpico hola mundo en java sobre lo que seria DOS, pero en este caso en netbeans lo veremos sobre el mismo ide y no sobre una pantalla negra y para terminar lo haremos desde un JFrame, que seria una simple ventana con un botn y una caja de texto. Bien, primeramente procederemos a la creacin de un nuevo proyecto, para eso vamos a archivos-> Proyecto Nuevo->Java->Aplicacin Java

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6819) JPA EN NETBEANS CON MYSQL (7667) APLICAR ESTILO CSS EN JSF (9674)

Php!!

Le damos el nombre en este caso HolaMundo y, luego la ubicacin, tildamos que nos cree el Main y que este sea configurado como proyecto principal y le damos click en terminar.

NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 CLICK AQUI

COMPARTI ESTE SITIO

http://www.compujuy.com.ar/postx.php?id=40

50 / 264

HOLA MUNDO EN JAVA CON NETBEANS 6.8

JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223)

15/12/2012

Interes en gral.!!
Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

Ya tenemos configurado nuestro proyecto, ahora para un simple hola mundo en Java, incluimos esta lnea dentro de nuestro main System.out.println("Hola Mundo"); Nos queda de la siguiente manera

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

Map

Satellite

Hybrid

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

La clase System es la clase que se utiliza para el acceso a la entrada/salida estndar de java, out es una variable del tipo PrintStream que implementa la salida estndar del sistema, luego se llama el mtodo println(), en la cual se le pasa un parmetro, que es lo que se mostrara por pantalla. Todo esto vendra a ser como el printf en c, o el writeln en pascal, o al cout de c++, pero obviamente de distintas maneras. Le damos en ejecutar y tendremos la salida que ser nuestro hola mundo

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Esto tambin se lo puede hacer desde DOS por medio de lneas de comando, lo cual nos mostrara tambin el resultado pero desde la pantalla negra de DOS,. Bien ahora ya tenemos el hola mundo por medio de la salida estndar, ahora lo haremos pero en una ventanita Windows. Sobre el mismo proyecto, en el paquete de fuentes holamundo, le damos click derecho sobre el proyecto hola mundo->nuevo , y con el izquierdo en Formulario JFrame
http://www.compujuy.com.ar/postx.php?id=40 51 / 264

HOLA MUNDO EN JAVA CON NETBEANS 6.8

15/12/2012

En esta ventana le damos el nombre Ventana, la ubicacin (en que paquete general se va a encontrar, si el de fuentes o el de pruebas) y la ubicacin dentro del proyecto (en que paquete pero dentro del proyecto) y para finalizar en terminar.

Ya tenemos la ventanita para el diseo como en visual basic o en visual fox, esto no es mas que una clase java, solo que el netbeans lo transforma en una ventanita mas agradable para un diseo rpido y fcil mediante drag and drop y una linda interfaz Ahora solo nos queda arrastrar los objetos hacia nuestra ventana, que en este caso seria un JTextField y un JButton. Recordemos que esto tambin lo podemos hacer directamente desde liena de cdigo sin arrastrar mediante la pestaa Fuente. Lo arrastramos y nos queda la ventana de la siguiente manera

http://www.compujuy.com.ar/postx.php?id=40

52 / 264

HOLA MUNDO EN JAVA CON NETBEANS 6.8

15/12/2012

Si le damos en ejecutar no nos mostrara la ventana sino seguir mostrando la salida estndar con el hola mundo, necesitamos instanciar un objeto de nuestra clase ventana generada por el netbeans para ver nuestra ventana cambiamos la siguiente lnea de nuestro Main.java System.out.println("Hola Mundo"); Por esta Ventana v=new Ventana(); v.setVisible(true); nos queda de la siguiente manera

en la primer lnea instanciamos un objeto de la clase Ventana generada por el netbeans, luego en la segunda lnea el objeto v modificamos la propiedad setVisible en true,osea para que esta ventana se muestre. A continuacin ejecutamos y clickeamos en el botn y no nos aparece nada, y esta bien porque no modificamos el evento click de el botn.

Bien ahora antes de modificar el evento, cambiaremos de nombre a los objetos JButton Y JTextField de la siguiente manera, clik derecho sobre el objeto y con el izquierdo en cambiar el nombre de la variable, esto tambin lo podemos hacer desde la ventana de propiedades. A la caja de texto la llamamos texto y al botn boton

luego modificamos la propiedad texto de los mismos de la siguiente


http://www.compujuy.com.ar/postx.php?id=40 53 / 264

HOLA MUNDO EN JAVA CON NETBEANS 6.8 texto de los luego modificamos la propiedad

mismos de la siguiente manera, el botn que nos indique en el texto del mismo MOSTRAR, y la caja de texto simplemente vacio nos queda la vantana de la siguiente manera

15/12/2012

nos queda asi la ventana

ahora tenemos que modificar el evento click del botn , para eso click derecho sobre el botn->eventos->Mouse->MouseClicked.

Nos parece directamente en el editor de cdigo para agregar lo que quieramos que suceda cuando le demos click en el botn. Recordemos tambin que esto se lo puede hacer tambin desde el cdigo fuente directamente. Ahora para que nos muestre Hola Mundo en nuestra caja de texto, tendremos que modificar la propiedad Text de la misma, usando el evento setText de nuestro objeto texto Agregamos estas lneas al evendo click texto.setText("Hola Mundo");

Ejecutamos el proyecto le damos click al botn y ya tenemos el hola mundo clsico en una simple ventana con java.

http://www.compujuy.com.ar/postx.php?id=40

54 / 264

HOLA MUNDO EN JAVA CON NETBEANS 6.8

15/12/2012

Espero que haya servido esta simple introduccin a java con netbeans. SALUDOS

marcela comento...

el dia 17/06/2011 a las 14:48

Gracias por la explicadita pero me despejo muchas de mis dudas bye bye
Mario comento...
el dia 18/06/2011 a las 09:28

no me salio, empece primero tipeando y luego con copy paste y nada desde este codigo Ventana v=new Ventana(); v.setVisible(true); que me sale el siguiente error Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - cannot find symbol symbol: class Ventana location: class holamundo.Main at holamundo.Main.main(Main.java:15) no se por que, saludos
rafa comento...
el dia 18/06/2011 a las 14:02

Hola, pues ahi te esta diciendo que no se encuentra la clase Ventana, fijate que este creado en la misma ubicacion y tambien que se llame de la misma manera, respetando minusculas y mayusculas..
Moises comento...
el dia 13/11/2011 a las 16:08

Muy bueno, hace tiempo que no entraba a netbeans y no me acordaba como se haca, anteriormente usaba los ejemplos que netbeans traia y los modificaba. Muchas gracias.... muy bueno...
Carlos comento...
el dia 04/06/2012 a las 01:04

Exelente intrdoduccion me ayudo mucho exito


INGRESA TU COMENTARIO

NOMBRE MAIL
http://www.compujuy.com.ar/postx.php?id=40 55 / 264

HOLA MUNDO EN JAVA CON NETBEANS 6.8

15/12/2012

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=40

56 / 264

CREACION DE UNA BD MYSQL EN NETBEANS 6.8

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

CREACION DE UNA BD MYSQL EN NETBEANS 6.8

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

En este post crearemos una base de datos MySql en el ide Netbeans 6.8, para ello vamos a utilizar las siguientes herramientas:
Tener instalado Netbeans 6.8 o 6.9 Tener instalado MySql 5.0

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

Vamos a la pestaa de prestaciones y sobre base de datos le damos click derecho y luego con el izquierdo en Registrar base de datos MySql como lo muestra en la imagen

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6819) JPA EN NETBEANS CON MYSQL (7667) APLICAR ESTILO CSS EN JSF (9674)

Php!!

Luego en nos aparecer la siguiente ventana para agregar los datos decesarios para realizar la conexin

NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223) CLICK AQUI

COMPARTI ESTE SITIO

Interes en gral.!!
http://www.compujuy.com.ar/postx.php?id=41 57 / 264

CREACION DE UNA BD MYSQL EN NETBEANS 6.8

Interes en gral.!!
Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

15/12/2012

Primeramente colocamos el nombre del servidor, ya que lo ejecutaremos sobre la misma maquina ser localhost o la ip de loockup como la llaman algunos que seria 127.0.0.1, el numero de puerto por el cual tendr el acceso MySql 3306, este es el numero de puerto por defecto el que utiliza MySql, si es que no lo cambiamos al instalarlo ser este, luego el nombre de usuario que en este caso ser root, que es el usuario supremos y por defecto al instalar mysql, y por ultimo la contrasea elegido por nosotros al instalarlo o al crear un usuario. Si todo nos sali bien ya tendremos registrado el motor de base de datos en el netbeans. Luego le damos click derecho y le damos en conectar

FEEDS RSS

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

Map

Satellite

Hybrid

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Estableceremos una conexin con el MySql y nos parecern si es que tenemos ya creadas alguna base de datos, las mismas como lo muestra imagen

Hasta aqu ya tenemos establecida una conexin con MySql desde el netbeans y para poder trabajar mas comodamente desde este gran Ide. A continuacin crearemos una pequea y sencilla base de datos que nos servir para posteriores ejemplos tanto en java como en php. Le damos click derecho sobre la conexin y con el izquierdo en crear base de datos

http://www.compujuy.com.ar/postx.php?id=41

58 / 264

CREACION DE UNA BD MYSQL EN NETBEANS 6.8

15/12/2012

Nos parece la siguiente ventana en donde tendremos que darle el nombre a nuestra base de datos en este caso la BD se llamara Empresa

Ya tenemos creada nuestra BD Empresa

Ahora le damos click derecho sobre tablas y le damos con el izquierdo en ejecutar comando

Nos aparecer una ventana lista para ejecutar comando MySql .


http://www.compujuy.com.ar/postx.php?id=41 59 / 264

CREACION DE UNA BD MYSQL EN NETBEANS 6.8 Nos aparecer una ventana lista para

ejecutar comando MySql . Esta tarea tambin la podemos desde una ventana tipo asistente del netbeans con tan solo darle click en crear tabla en vez de ejecutar comando, pero de esa manera no tenemos mucha flexibilidad a la hora de trabajar, como ser el elegir el cotejamiento de nuestras tablas o la manera en que estas sern almacenadas, asi que lo haremos desde la ventana de comandos que nos ofrece el netbeans, Una vez abierta la ventana de comandos copiaremos el siguiente escript --CREACION DE LA TABLA DEPARTAMENTOS DE LA EMPRESA CREATE TABLE departamentos( id_dep int(4) NOT NULL auto_increment primary key, categoria_dep varchar(4) NOT NULL, descripcion_dep varchar(30) NOT NULL )ENGINE=MyISAM DEFAULT CHARSET=utf8; --CREACION DE LA TABLA EMPLEADOS DE LA EMPRESA CREATE TABLE empleados ( id_emp int(4) NOT NULL auto_increment primary key, id_dep int(4) NOT NULL references departamentos(id_dep), dni_emp int(8) NOT NULL, apellido_emp varchar(20) NOT NULL, nombres_emp varchar(30) NOT NULL, direccion_emp varchar(50) NOT NULL, tel_emp varchar(15) NULL )ENGINE=MyISAM DEFAULT CHARSET=utf8; --INSERCION DE REGISTROS A LA TABLA DEPARTAMENTOS INSERT INTO departamentos(categoria_dep,descripcion_dep) values ("1A","RECURSOS HUMANOS"); INSERT INTO departamentos(categoria_dep,descripcion_dep) values ("1B","CONTADURIA"); INSERT INTO departamentos(categoria_dep,descripcion_dep) values ("1C","MECANICA"); INSERT INTO departamentos(categoria_dep,descripcion_dep) values ("1Z","ELECTRONICA"); --INSERCION DE REGISTROS A LA TABLA EMPLEADOS INSERT INTO empleados (id_dep, dni_emp, apellido_emp, nombres_emp, direccion_emp, tel_emp) values(1,31568452, "ARJONA", "PABLO", "ALTO COMEDERO", "0388156354119"); INSERT INTO empleados (id_dep, dni_emp, apellido_emp, nombres_emp, direccion_emp, tel_emp) values(2,31568452, "GERONIMO", "PAOLA SOLEDAD", "ALTO COMEDERO", "0388-155896124"); INSERT INTO empleados (id_dep, dni_emp, apellido_emp, nombres_emp, direccion_emp, tel_emp) values(1,31568452, "NINA", "JUAN EMANUEL", "PALPALA", "03881558947212"); INSERT INTO empleados (id_dep, dni_emp, apellido_emp, nombres_emp, direccion_emp, tel_emp) values(1,31568452, "SOSA", "CRISTIAN", "LEDESMA", "0388-154784102"); INSERT INTO empleados (id_dep, dni_emp, apellido_emp, nombres_emp, direccion_emp, tel_emp) values(3,31568452, "MAMANI", "ROBERTO CARLOS", "SAN PEDRO", "0388156324951"); INSERT INTO empleados (id_dep, dni_emp, apellido_emp, nombres_emp, direccion_emp, tel_emp) values(3,31568452, "CACEREZ", "GABRIELA MARTA", "PALPALA", "0388155014956"); INSERT INTO empleados (id_dep, dni_emp, apellido_emp, nombres_emp, direccion_emp, tel_emp) values(1,31568452, "CAMACHO", "BELEN", "PALPALA", "0388-154753369"); INSERT INTO empleados (id_dep, dni_emp, apellido_emp, nombres_emp, direccion_emp, tel_emp) values(2,31568452, "ALANCAY", "JUAN", "PALPALA", "0388-154789100"); INSERT INTO empleados (id_dep, dni_emp, apellido_emp, nombres_emp, direccion_emp, tel_emp) values(1,31568452, "ARAMAYO", "HUGO", "PALPALA", "0388-154103531"); La ventana nos quedara de la siguiente manera, y luego le damos click en ejecutar SQL

15/12/2012

http://www.compujuy.com.ar/postx.php?id=41

60 / 264

CREACION DE UNA BD MYSQL EN NETBEANS 6.8

15/12/2012

Y si todo nos sali bien ya tendremos 2 tablas creadas con algunos datos insertados

A continuacin para verificar la correcta ejecucin de las sentencias MySql procedemos a actualizar la conexin

Extendemos el nodo de tablas y podremos ver las 2 tablas creadas

Para verificar los datos damos click derecho sobre empleado por ej, y luego con el izquierdo en mostrar datos y podremos ver los datos insertados como lo muestra en la figura

http://www.compujuy.com.ar/postx.php?id=41

61 / 264

CREACION DE UNA BD MYSQL EN NETBEANS 6.8

15/12/2012

Desde esta ventana podremos agregar, modificar o eliminar datos de una manera sencilla

Bien hasta aquillegamoscon este sencillo tutorial enel cual vimos como conectarnos y acceder a una base de datos MySql desde Netbeans para luego poder realizar un CRUD desde Java o PHP.

dj7 comento...

el dia 24/03/2011 a las 19:57

ola amigo, oye nose si me puedas hechar la mano, por cierto hermano muy buen tutorial, chido.. bueno lo que pasa es quiero hacer un trabajo en netbeans, en el cual yo necesito guardar unos productos, pero como serian muchos productos, necesito amm por ejemplo un combo box donde yo le de el numero nada mas y me muestre los campos donde pueda escribir los productos y guardarlo, te lo agradeceria mucho tengo que hacer un proyecto final y no le entiendo muy bien de como usar el combox..gracias
david comento...
http://www.compujuy.com.ar/postx.php?id=41

el dia 05/05/2011 a las 19:03

62 / 264

CREACION DE UNA BD MYSQL EN NETBEANS 6.8

15/12/2012

hola amigos nose si alguen me puede decir como puedo migrar de autocad a netbeans se los agradeceria mucho
jose comento...
el dia 11/05/2011 a las 14:07

como le hago para conectar la base de datos con un proyecto de java ?


natasha comento...
el dia 25/08/2011 a las 23:12

muy bueno tu tutorial, me servio de mucho. Si tienes un tutorial para aprender bien java desde cero. Gracias
vero comento...
el dia 13/12/2011 a las 08:43

muchas Gracias!! muy bueno el tutorial.


abraham comento...
el dia 11/01/2012 a las 15:39

me prodrias ayududar para que mis datos que tengo guardado en un tabla en mySQL me muestre esos datos en una tabla pero en netbean te agradeceria mucho si me ayudas codigo de java
Artalex comento...
el dia 20/03/2012 a las 23:52

Muy buena tu explicacion soy nuevo en JPA y esto me sirvio para darme cuenta que se pueden crear BD con MYSQL de forma sencilla.
fannitha comento...
el dia 04/04/2012 a las 20:48

No manches esto no esta completo yo keria relacionar varias tablas es mas ayudame con mi tarea
fannitha comento...
el dia 04/04/2012 a las 20:48

No manches esto no esta completo yo keria relacionar varias tablas es mas ayudame con mi tarea
alonso comento...
el dia 03/10/2012 a las 00:06

asu estaba rechevre causa gracias aprendi algo nuevo Y_Y se agradece
PEDRO comento...
el dia 23/11/2012 a las 08:46

esta genial el ejemplo...sirve de mucho...aunque sera genial ejecutar e insertar o eliminar articulos desde un combo box..es un proyecto final..aunque tu explicacion esta muy bien...gracias por el aporte
raphaekl comento...
el dia 03/12/2012 a las 14:01

Hey man el tuto esta perfecto, el problema que tengo es que cuando le doy para registrar el MySql, pes nada man ni con click derecho ni con izquierdo que puede ser dime, necesito tu ayuda urgente, por si aca tengo instalado MySQL, con el appserv dame la solucion xf
INGRESA TU COMENTARIO

NOMBRE MAIL

http://www.compujuy.com.ar/postx.php?id=41

63 / 264

CREACION DE UNA BD MYSQL EN NETBEANS 6.8

15/12/2012

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=41

64 / 264

INTRODUCCION A JPA (JAVA PERSISTENCE API) CRUD

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

INTRODUCCION A JPA (JAVA PERSISTENCE API) CRUD

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

Java Persistence API (JPA) proporciona un modelo de persistencia basado en POJO"s para mapear bases de datos relacionales en Java. El Java Persistence API fue desarrollado por el grupo de expertos de EJB 3.0, aunque su uso no se limita a los componentes software EJB. Tambin puede utilizarse directamente en aplicaciones web y aplicaciones clientes, como lo haremos en este post ; incluso fuera de la plataforma Java EE, por ejemplo, en aplicaciones Java SE. En su definicin, se han combinado ideas y conceptos de los principales frameworks de persistencia como Hibernate, Toplink y JDO, y de las versiones anteriores de EJB. Todos estos cuentan actualmente con una implementacin JPA.

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6819) JPA EN NETBEANS CON MYSQL (7667) APLICAR ESTILO CSS EN JSF (9674)

El mapeo objeto/relacional, es decir, la relacin entre entidades Java y tablas de la base de datos, se realiza mediante anotaciones en las propias clases de entidad, por lo que no se requieren ficheros descriptores XML. Tambin pueden definirse transacciones como anotaciones JPA. Java Persistence API consta de tres reas: El Java Persistence API El lenguaje de query El mapeo de los metadatos objeto/relacional Basicamente JPA es una API para ORMs ( Object-Relational mapping) y te permite: -Abstraerte del proveedor de persistencias, que no es mas la implementacion que uses. Por ejemplo puede utilizar Hibernate, Toplink, JDO y otros utilizando la misma API (al estilo de JDBC y los drives para cada BD) -Eliminar la necesidad de escribir el SQL que mapea la BD a tus objetos utilizando simples anotaciones. Ya no escribiremos lneas sql en nuestro programas, sino que realizaresmo xonsultas sobre nuetros objetos. -Poder crear relaciones ManyToOne, OneToOne, OneToMany y ManyToMany entre cualquier cantidad de objetos que quieras una vez mas solo con anotaciones -Controlar la transaccionalidad (utilizando JTA o JDBC) de las consultas y demas -Obviamente te ayuda mucho con el tema de la concurrencia y en la forma en que se gestiona -Tiene un cache de primer nivel que por defecto evitar estar iendo a la BD muchas veces para lo mismo en una misma transaccion. -Puedes utilizar un cache de segundo nivel que incrementar muchisimo el rendimiento de la app y la escalabildidad -Trae un lenguaje de consultas OO super facil de usar que te permite hacer navegacion entre tablas como si fueran objetos. por ejemplo algo asi como .... where empresa.ciudad.pais.nombre = "COLOMBIA" donde empresa ciudad y pais son tres tablas diferentes y nombre es una propiedad de Pais. Para una mayor referencia podemos leer los siguietes articulos

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223) CLICK AQUI

COMPARTI ESTE SITIO

Interes en gral.!!
http://www.compujuy.com.ar/postx.php?id=47 65 / 264

INTRODUCCION A JPA (JAVA PERSISTENCE API) CRUD

15/12/2012

Tarjeta de referencia de JPA. Una mas Lo que haremos en este post es crear mediante netbeans 6.8 una simple aplicacin J2SE, en la que haremos utilizacin de JPA, trabajaremos mediante el netbeans que nos hara la tarea mas sencilla, ya que no tendremos que escribir todo el codigo, sino que este...comenzamos Antes que nada nesecitaremos tener creada una base de datos MYSQL, para este ejemplo utilizamos la base de datos de este post. En primer lugar creamos un nuevo proyecto, vamos a Archivos->Proyecto Nuevo
Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184) FEEDS RSS

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

Map

Satellite

Hybrid

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1

Elegimos aplicacin java le damos en siguiente, luego el nombre, le damos ubicacin y dems (para una mayor referencia sobre creacin de proyectos en java podes mirar este post) y por ultimo en terminar.

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Ya tenemos el proyecto creado ahora procedemos a crear 2 paquetes Entidades y Controladores

http://www.compujuy.com.ar/postx.php?id=47

66 / 264

INTRODUCCION A JPA (JAVA PERSISTENCE API) CRUD

15/12/2012

El rbol del proyecto nos debe quedar asi

Ahora procederemos a crear entidades a partir de una base de datos ,para este ejemplo como mencionamos anteriormente usaremos la base de datos de este post. JPA trabaja fuertemente con anotaciones. Para mapear un bean (una clase java) con una tabla de la base de datos, tendriamos que escribir lo que se llama un Entity. Esto es tan sencillo como escribir nuestro Bean, con sus atributos y metodos get y set. Y despues aadirle la anotacion @Entity a la par que seleccionamos uno de sus atributos como clave primaria con @Id. Por ejemplo, el siguiente trozo de codigo podria ser un Entity, que nos permitiria luego almacenar, recuperar, o actualizar campos sobre la tabla empleados:
1. 2. 3. 4. 5. 6. 7. 8. @Entity

public class Empleados


{ @Id

private String id; private String nombre; private String apellido;


}

Lo anterior seria un simple ejemplo de una entidad, pero nosostros lo haremos sutomaticamente desde el netbeans de la siguiente manera. Le damos click derecho sobre el paquete Entidades->Nuevo y luego ubicamos Clase Entidad a partir de una Base de Datos (Si no la ubicamos en el men textual nos dirigimos a otro y luego en el men persistencia estar Clase Entidad a partir de una Base de Datos)

http://www.compujuy.com.ar/postx.php?id=47

67 / 264

INTRODUCCION A JPA (JAVA PERSISTENCE API) CRUD

15/12/2012

En la ventana elegimos la conexin a la base de datos, en este caso la bd empresa, agregamos las dos tablas, y le damos click en siguiente

Observamos las cajas de texto con las ubicaciones y dems, tambin podemos ver que no tenemos creada la unidad de persistencia, el ide nos sigiere crearla, ya que sin esta no haremos nada.

http://www.compujuy.com.ar/postx.php?id=47

68 / 264

INTRODUCCION A JPA (JAVA PERSISTENCE API) CRUD

15/12/2012

"Crear unidad de persistencia" nos creara e Este es un fichero muy importante, en este indicar precisamente que clases son Entity, sobre que base de datos vamos a trabajar, y cual es la politica de creacion de esta base de datos. Se nos abre la siguiente ventana, nos pide el nombre de la unidad de persistencia,la dejamos tal cual esta. Tambin nos pide la biblioteca de persistencia, tenemos 3 opciones, en este caso elegimos la de hibrnate, luego en la estrtegia de generacin de tablas elegimos ninguno, para finalizar le damos en crear.

Las opciones de mapeo la dejamos tal cual esta y le damos en terminar

Si observamos el rbol de proyectos ya tenemos creada la entidad Empleados y Departamentos , la cual es una clase serializable con todos sus mtodos modificadores (set y get ) y la unidad de persistencia persistence.xml, esta ultima un archivo xml, la cual podemos modificar de maner visual o mediante lneas xml, siempre respetando los tags de jpa.

http://www.compujuy.com.ar/postx.php?id=47

69 / 264

INTRODUCCION A JPA (JAVA PERSISTENCE API) CRUD

15/12/2012

Ahora crearemos la clase controladora, es decir la clase que nos hara las altas bajas, modificaciones y un par de ocnsultas del las tablas epleados y departamentos, a travs de sus correspondientes entidades. Le damos click derecho sobre el paquete Controladores->Nuevo y luego ubicamos Clase Controladora JPA de Clase Entidad (Si no la ubicamos en el men textual nos dirigimos a otro y luego en el men persistencia estar Clase Controladora JPA de Clase Entidad)

En la lista clase entidades disponibles el ide ya nos detecta las dos clases entidades, anteriormente creada, la agregamos a la lista derecha, y le damos en siguiente y luego en terminar. Oservamos el rbol del proyecto y ya tenemos de manera fcil creada nuestra clase controladora necesaria para el CRUD de nuestras tablas Tambin el ide nos crea un paquete de excepciones con sus respectivas clases. El rbol extendido nos queda asi (esto es para netbeans 6.8, recuerdo que en el 6.5 no me creaba las excepciones)

http://www.compujuy.com.ar/postx.php?id=47

70 / 264

INTRODUCCION A JPA (JAVA PERSISTENCE API) CRUD

15/12/2012

Bien hasta aqu tenemos creada la entidad con su respectiva clase controladora, ahora veremos como crear un objeto de esa clase entidad, setear sus propiedades, y luego insertar modificar y eliminar atravez de la clase controladora Antes de cada ejecucin nos aseguramos de incluir la biblioteca JDBC de MYSQL a nuestro proyecto, vamos al Bibliotecas->Agregar Biblioteca

Localizamos la de mysql y le damos en aadir bibioteca

La biblioteca nos tiene que quedar de esta manera

http://www.compujuy.com.ar/postx.php?id=47

71 / 264

INTRODUCCION A JPA (JAVA PERSISTENCE API) CRUD

15/12/2012

CRUD

Para ello vamos al Main generado por el ide Primeramente, recordemos que vamos a utilizar las clases entidades y las controladoras, como estn en otro paquete la debemos importar Agregamos estas lneas despus del package AplicacionJava1; import Entidades.*; import Controladores.*; El cdigo nos tiene que quedasr asi

ALTA Agregamos las siguientes lneas, al mtodo main principal


//instanciamos un onjeto de la clase empleados Empleados empleado=new Empleados(); //instanciamos un onjeto de la clase controladora de empleados 4. EmpleadosJpaController control=new
1. 2. 3. EmpleadosJpaController(); 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.

//seteamos la propiedad Nombres de empleados


empleado.setNombresEmp("SUSANA");

//seteamos la propiedad apellidos de empleados


empleado.setApellidoEmp("GIMENEZ");

//seteamos la propiedad Direccion de empleados


empleado.setDireccionEmp("BS. AS.");

//seteamos la propiedad Dni de empleados


empleado.setDniEmp(10234987);

//seteamos la propiedad Telefono de empleados // recordamos q no seteamos la propiedad id ya que es autogenerada


empleado.setTelEmp("011-52341642");

//utilizamos el metodo create para crear un nuevo empleado 17. // al metodo solo le pasamos la clase ya seteada
http://www.compujuy.com.ar/postx.php?id=47 72 / 264

INTRODUCCION A JPA (JAVA PERSISTENCE API) CRUD

15/12/2012

18.

control.create(empleado);

El cdigo nos queda asi

Ejecutamos el Main , y ya tiene que estar agregado nuestro nuevo empleado. Verificamos en las base de datos.nos dirigimos a Prestaciones->Base de Datos, elegimos el nodo de la base de datos empresa y le damos click en conectar

Extendemos los nodo, le damos click derecho, y con el izquierdo en Mostrar Datos

http://www.compujuy.com.ar/postx.php?id=47

73 / 264

INTRODUCCION A JPA (JAVA PERSISTENCE API) CRUD

15/12/2012

En la ventana anterior observamos el nuevo empleado agregado

Con esta alta vemos lo sencillo que es, agregar un nuevo empleado tratndolo como un objeto con sus respectivas propiedades. MODIFICACION Copiamos las siguientes lneas al mtodo principal del main
//recordemos que debemos respetar los campos que no pueden //ser nulos, ya que de no ser asi dara error--//instanciamos un onjeto de la clase empleados Empleados empleado=new Empleados(); //instanciamos un onjeto de la clase controladora de empleados EmpleadosJpaController control=new EmpleadosJpaController(); //seteamos la propiedad, ya que por esta propiedad buscara el //empleado indicado //en este caso al que agregamos anteriormente empleado.setIdEmp(10);//el emp de id 10 sera modificado
empleado.setNombresEmp("CATALINA");

//seteamos la propiedad apellidos de empleados


empleado.setApellidoEmp("LUNA");

//seteamos la propiedad Direccion de empleados


empleado.setDireccionEmp("BS. AS."); try{//bloque try catch para el control de excepciones control.edit(empleado);//utilIzamos el metodo edit, } // para le modificacion catch(Exception e) { System.out.println(e);//si ocurre un error lo } //mostramos por salida estandar

Nos queda asi

http://www.compujuy.com.ar/postx.php?id=47

74 / 264

INTRODUCCION A JPA (JAVA PERSISTENCE API) CRUD

15/12/2012

Ejecutamos el Main Verificamos refrescando la consulta y observamos los datos modificados.

BAJA Agregamos las siguientes lneas al metodo principal main


//para la baja no es nesesario instanciar //el la clase empleados // si instanciamos la controladora, ya que esta me busca por id EmpleadosJpaController control=new EmpleadosJpaController(); try{//bloque try catch para el control de excepciones // en este caso para eliminar utilizamos el metodo //destroy, y le pasamos com parametro el id //en este caso eliminaremos el empleado anteriormente creado
control.destroy(10);} catch(Exception e){ }

El main.java nos queda asi

http://www.compujuy.com.ar/postx.php?id=47

75 / 264

INTRODUCCION A JPA (JAVA PERSISTENCE API) CRUD

15/12/2012

Ejecutamos el Main Verificamos el la consulta sql, y vemos q lo elimino y no aparece el empleado anteriormente creado

REALIZANDO UNA CONSULTA Agregamos las siguientes lneas al metodo principal main
1. 2. 3. 4. List lista=new ArrayList();//creamos un objeto de una lista

//instanciamos un onjeto de la clase empleados Empleados empleado=new Empleados(); //instanciamos un onjeto de la clase controladora de empleados 5. EmpleadosJpaController control=new
EmpleadosJpaController(); 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.

//atravez de la clase control obtenemos todos los registros


lista=control.findEmpleadosEntities();

//creamos un bucle for para recorrer la lista for (Object lista1 : lista) { //a la clase empleados le damos el valor de la lista empleado=(Empleados)lista1;// //mostramos por la salida el nombre de los empleados //a travez de getNombreEmp System.out.println(empleado.getNombresEmp()+"\n");
}

El main.java nos queda asi

http://www.compujuy.com.ar/postx.php?id=47

76 / 264

INTRODUCCION A JPA (JAVA PERSISTENCE API) CRUD

15/12/2012

Ejecutamos el Main Y la salida del netbeans nos muestra los siguiente

Bien hasta aqu hemos visto como realizar un CRUD, vimos como nos referamos solamente a objetos, JPA se encargo del mapeo objeto relacional, no utilizamos en ningn momento lneas sql en nuestra aplicacin, solamente anotaciones hibernate de la clase controladora.Cualquier consulta consulten....

SFK22 comento...
http://www.compujuy.com.ar/postx.php?id=47

el dia 09/09/2010 a las 14:19


77 / 264

INTRODUCCION A JPA (JAVA PERSISTENCE API) CRUD

15/12/2012

<pre>BUEN POST RAFA..creo que cambiare hibernate por JPA</pre>

cristian comento...
INTERESANTE.

el dia 04/10/2010 a las 09:16

Leonardo comento...

el dia 12/07/2011 a las 11:24

Muy bueno el manual Tengo la siguiente pregunta tengo un objectlist de tipo ventana pero lo necesito pasar a tipo persistencia, creo que es en el query pero como edito el query
Leonardo comento...
el dia 12/07/2011 a las 11:24

Muy bueno el manual Tengo la siguiente pregunta tengo un objectlist de tipo ventana pero lo necesito pasar a tipo persistencia, creo que es en el query pero como edito el query
Martin comento...
el dia 27/07/2011 a las 20:18

Hola te felicito porque realmente estan muy buenos todos los post! Los vengo mirando hace un par de das y los estoy escribiendo para practicar un poco. Sin embargo, llegue a este post y trat de ejecutar la aplicacion pero me marca un error ya que el new sin parametros de EmpleadosJpaController no ha sido creado. En tu ejemplo el constructor recibe por parametro un objeto del tipo EntityManagerFactory, que cuando es llamado desde el MAIN no le pasas el parametro, por tanto Netbeans marca el error y sugiere crear el constructor vacio. Me gustara saber como lo puedo solucionar. Desde ya muchas gracias Saludos MARTIN
rafa comento...
el dia 28/07/2011 a las 15:36

Que tal Martin, pues en mi ejemplo la clase controladora EmpleadosJpaControler tiene un constructor que no tiene parametro, con lo cual instancio la clase, fijate de haber creado la clase como lo hice yo en el ejemplo, de todos modos si el Netbeans te creo la clase con un constructor con parametros pues instancia la clase asi o bien te paso este otro post que es casi igual a este http://compujuy.com.ar/postx.php?id=85 Espero que se te solucione el problema.Saludos
pato comento...
el dia 05/08/2011 a las 13:22

He seguido este ejemplo pero no me sale el boton, para crear la persistencia, tengo el netbeans 6.9.1, o forzamente debo tener la version 6.8?. Gracias.
Mario comento...
el dia 28/08/2011 a las 18:14

Est excelente muchas gracias por compartir tus conocimientos con los dems, eso habla muy bien de tu persona. saludos
Jorge comento...
el dia 05/11/2011 a las 07:11

Muy buen foro, bueno a mi tambien me paso el mismo error del EntityManagerFactory en el constructor del controlador, aparte de todo por defecto la unidad de persistencia me aparecia con eclipse o algo asi, lo que hice fue primero que todo crear la unidad de persistencia antes de crear las entidades, ya al momento de probar la insersion instancie un emf
http://www.compujuy.com.ar/postx.php?id=47 78 / 264

INTRODUCCION A JPA (JAVA PERSISTENCE API) CRUD insersion instancie un emf

15/12/2012

EntityManagerFactory factory = Persistence.createEntityManagerFactory("PersistenciaPU"); y el factory se lo paso al EmpleadosJpaController control= = ner EmpleadosJpaController (factory); Bueno eso fue todo y sirvio a las mil maravillas.
CARLOS comento...
el dia 28/02/2012 a las 16:03

Solo puedo decir mis respetos seor, este ejemplo me ha aclarado la infinidad de dudas que tenia de verdad no puedo expresar la ayuda que me has hecho. Solo para ampliar yo hice la aplicacion en Netbeans 7.1 y al crear el JPAcontroles lo hace de la siguiente manera agregando un parametro en el constructor. public EmpleadosJpaController(EntityManagerFactory emf) { this.emf = emf; } Entonces yo lo resolvi de la siguintes maneras 1. Quitando el parametro y dejando el contructor de esta forma, donde persistencia2PU es el nombre de la unidad de persistencia que se puede ver en persistence.xml public EmpleadosJpaController() { this.emf = Persistence.createEntityManagerFactory("persistencia2PU"); } 2. La otra forma es dejar el constructor como lo crear netbeans y en el main hacer el llamado asi EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistencia2PU"); EmpleadosJpaController control = new EmpleadosJpaController(emf); Saludos amigos
Arturo comento...
el dia 08/04/2012 a las 00:02

esta muy bueno , pero tengo una duda, como puedo hacer una consulta que solo me genere la linea que deceo
Edwin comento...
el dia 19/07/2012 a las 16:52

Saludos, amigo porfa ayudame con un ejemplo de como haria para poder hacer una consulta de varias tablas y almacenar la respuesta es una sola lista. por ejemplo en sql seria "select * from usuario,persona where usuario.idUsuario=persona.idUsuario" Gracias
Carlos comento...
el dia 25/11/2012 a las 21:07

Gracias por fin he hecho mi primer insert con JPA sin usar jdbc, muchas gracias a los qe comentaron lo del constructor del Controlador y a los amigos de compujujuy
Fabian comento...
http://www.compujuy.com.ar/postx.php?id=47

el dia 29/11/2012 a las 22:11


79 / 264

INTRODUCCION A JPA (JAVA PERSISTENCE API) CRUD

15/12/2012

Muy bueno el material


INGRESA TU COMENTARIO

NOMBRE MAIL

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=47

80 / 264

CLIENTE FTP EN JAVA

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

CLIENTE FTP EN JAVA

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

En esta ocasin veremos como acceder desde un programa cliente en java, a un servidor FTP, podremos logearnos, listar nuestros directorios, archivos, eliminar etc.. En este ejemplo lo haremos desde la salida estndar de java, pero no habra problema si nos quisiramos extender para hacerlo desde un JFrame Swing o bien desde un a pagina JSP. Para empezar antes que nada necesitamos la librera commons-net-2.0., que la podemos descargar desde aqu commons-net-ftp-2.0.jar O bien desde el sitio oficial http://commons.apache.org/net/download_net.cgi De paso en este sitio se encuentra toda la documentacin de la misma. Haremos uso como de costumbre de Netbeans, creamos un nuevo proyecto java y le damos el nombre de ClienteFtp

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6819) JPA EN NETBEANS CON MYSQL (7667) APLICAR ESTILO CSS EN JSF (9674)

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

le damos el nombre al proyecto

Actualidad Informatica!!

http://www.compujuy.com.ar/postx.php?id=54

81 / 264

CLIENTE FTP EN JAVA

15/12/2012

DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223)

CLICK AQUI

COMPARTI ESTE SITIO

Interes en gral.!!
Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

Agregamos de la siguiente manera la librera a nuestro proyecto

.Net!! Redes!! POSTS MAS VISTOS Tops!!


Map

CONOCE JUJUY!!

Satellite

Hybrid

La ubicamos y listo

AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

Para ser ms un poco mas organizados, creamos una clase de nombre ClienteFTP

30 31

le damos el nombre a nuestra clase, en este caso ClienteFTP

http://www.compujuy.com.ar/postx.php?id=54

82 / 264

CLIENTE FTP EN JAVA

15/12/2012

Y agregamos las siguientes lneas anuestra clase package clienteftp; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; public class ClienteFTP { private String username, password, host, directorio ; private boolean login; FTPClient ftpCliente; public ClienteFTP(String host,String username,String password){ this.username = username; this.password = password; this.host = host; ftpCliente = new FTPClient(); try { ftpCliente.connect(this.host); this.login=ftpCliente.login(this.username, this.password); if(this.login){System.out.println("Login success...");} else{System.out.println("Failure success...");} } catch (IOException e) { System.err.println(e.getMessage()); } } public void setDirectorio(String directorio) throws IOException { ftpCliente.changeWorkingDirectory(directorio); } public List listar() throws IOException{ List lista= new ArrayList(); // creamos una array List if(this.login){ // si es true FTPFile[] ftpFiles = ftpCliente.listFiles(); for (FTPFile ftpFile : ftpFiles) { lista.add("------"+ftpFile.getName()+"----"); //agregamos a la lista emlementos } }else System.out.println("No logeado..."); return lista; } } A continuacin explicaremos las lneas ms importantes Para el constructor ftpCliente.connect(this.host); En esta linea lo que hacemos es usar el mtodo connect(host), de la clase heredada FTPClient, en la cual se le pasa por parmetro el nombre del servidor FTP. this.login=ftpCliente.login(this.username, this.password); Asignamos a un atributo privado del tipo boolean, lo que nos devuelve el mtodo login, con los parmetros del nombre de usuario, junto con el pass, devolver true en caso de login exitoso, y false caso contrario. if(this.login){System.out.println("Login success...");} else{System.out.println("Failure success...");} si this.login devuelve true, mostraremos por la salida estndar el mensaje Login success...", caso contrario "Failure success...") Para este ejemplo disponemos de los siguientes mtodos public void setDirectorio(String directorio) throws IOException { this.changeWorkingDirectory(directorio); } Lo que hace este mtodo es cambiar el directorio actual, por otro especificado en la variable directorio public List listar() throws IOException{
http://www.compujuy.com.ar/postx.php?id=54 83 / 264

CLIENTE ListEN JAVA public FTP listar()

throws IOException{ List lista= new ArrayList(); // creamos una array List if(this.login){ // si es true FTPFile[] ftpFiles = this.listFiles(); for (FTPFile ftpFile : ftpFiles) { lista.add("------"+ftpFile.getName()+"----"); //agregamos a la lista emlementos } }else System.out.println("No logeado..."); return lista; } } Este mtodo listar, lo que hace este mtodo es devolver una lista con los directorios y archivos del directorio actual. FTPFile[] ftpFiles = ftpCliente.listFiles(); En esta lnea estamos pidiendo, al objeto instanciado , una lista con los archivos y directorios, atravez del mtodo listFiles(), luego se lo asignamos a la variable ftpFiles, que tiene que ser del tipo FTPFile[], propia de la librera org.apache.commons.net.ftp.FTPFile (la cual ya esta importada). Luego en nuestro main, lo nico que haremos es instanciar la clase ClienteFTP, y listar los archivos y directorios, luego cambiaremos el directorio, y volveremos a listars los directorios y archivos pero de ese path Aadimos las siguientes lneas a nuestro main package clienteftp; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) throws IOException { List lista= new ArrayList(); ClienteFTP clie=new ClienteFTP("compujuy.com.ar","usuario", "contrasea"); lista=clie.listar();//asignamos a lista lo q nos devuelve el metodo for (Object lis : lista) {//recorremos la lista System.out.println(lis.toString()); } System.out.println(" \n CAMBIAMOS DE DIRECTORIO Y LISTAMOS \n"); clie.setDirectorio("public_html");//cambiamos el directorio lista=clie.listar(); //asignamos a lista lo q nos devuelve el metodo for (Object lis : lista) {//recorremos la lista System.out.println(lis.toString()); } } } el main nos queda asi

15/12/2012

Lo ejecutamos y vemos la salida con el listado de archivos y directorios de compujuy.com.ar

http://www.compujuy.com.ar/postx.php?id=54

84 / 264

CLIENTE FTP EN JAVA

15/12/2012

Con esta librera se puede extender mucho mas, como eliminar, modificar etc. Directorios y archivos, para este ejemplo solo accedimos y listamos nada mas hasta pronto.

tania comento...

el dia 23/08/2012 a las 14:38

Hola tengo una duda con este codigo, lo que pasa clie.setDirectorio("public_html");//cambiamos el directorio ahi en public html: a que te refieres con esto? y en la conexion que se realiza con el ftpClient no tengo problemas con el host, usuario y psw, pero aun asi no me permite loggearme, lo eh intentado con .net y me sale error de "no s epudo conectar con proxy" saludos espero tu respuesta
rafa comento...
el dia 23/08/2012 a las 15:11

Que tal Tania, con respecto a tus preg: ahi en public html: a que te refieres con esto? con esto me refiero a q cuando me logeo, yo tengo entrada a un directorio, y en ese directorio esta el directorio public_html el cual es mi direcotorio inicial que contiene todos mis archivos y es en donde me quiero posicionar con clie.setDirectorio("public_html") y a tu otra pregunta no la entiendo a que lo has intentado con .net.. Bueno cualquier cosa me preguntas, desde argentina Saludos

tania comento...

el dia 24/08/2012 a las 13:10

Hola que tal rafa pues mira hice el codigo tal cual lo has publicado, cambiando el archivo de mi ftp, usuario y psw, en toeria, deberia conectarme al ftp, pero me salen los siguientes errores, ya e intentado varias veces saber que es pero no he tenido exito, espero que me puedas ayudar=)
run: ftp://189.206.17.34/enlaces/ No logeado... CAMBIAMOS DE DIRECTORIO Y LISTAMOS Exception in thread "main" java.lang.NullPointerException
http://www.compujuy.com.ar/postx.php?id=54 85 / 264

CLIENTE FTP EN JAVA

15/12/2012

at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:471) at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:534) at org.apache.commons.net.ftp.FTP.cwd(FTP.java:758) at org.apache.commons.net.ftp.FTPClient.changeWorkingDirectory(FTPClient.java:716) at clienteftp.Cliente.setDirectorio(Cliente.java:29) at clienteftp.CLIENTEFTP.main(CLIENTEFTP.java:20) Java Result: 1 BUILD SUCCESSFUL (total time: 1 second)

Lalo comento...

el dia 03/10/2012 a las 15:59

Hey que tal, mira el cdigo al parecer si me da acceso como log in, y success, el detalle que me muestra un error a la hora de listar el directorio, la verdad ya busque las posibles causas del error y no encuentro respuesta, el siguiente error que me da es el siguiente: Exception in thread "main" java.net.SocketException: Software caused connection abort: socket write error at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109) at java.net.SocketOutputStream.write(SocketOutputStream.java:153) at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221) at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:291) at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:295) at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:141) at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2731) at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2778) at clienteftp.ClienteFTP.listar(ClienteFTP.java:39) at clienteftp.Main.main(Main.java:16) Java Result: 1 De antemano gracias. Esperando tu respuesta.

Lalo comento...

el dia 15/10/2012 a las 14:34

Hey que tal rafa, me sigue apareciendo el mismo error, ya buscando en internet y noms no encuentro cual es la falla, si me puedo logear pero a la hora de listar los archivos no lo hace, arroja el siguiente error: Exception in thread "main" java.net.SocketException: Software caused connection abort: socket write error at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109) at java.net.SocketOutputStream.write(SocketOutputStream.java:153) at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221) at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:291) at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:295) De antemano gracias y saludos desde Mxico.

Licky comento...

el dia 23/10/2012 a las 00:09

ME FUNCIONO PERFECTAMENTE!!! GRACIAS POR EL MAGNIFICO APORTE!!! Mil gracias desde El Salvador, Centro Amrica.
ivan comento...
el dia 29/10/2012 a las 07:03

Es un poquito urgente... Cmo puedo hacer para transferir archivos al directorio FTP? Gracias de antemano.
Lalo comento...
http://www.compujuy.com.ar/postx.php?id=54

el dia 29/10/2012 a las 17:31


86 / 264

CLIENTE FTP EN JAVA

15/12/2012

Utiliza el fileinputstream, y adems aade el BYNARY_FYLE_TYPE para porder transferir cualquier tipo de archivo. Mira te pasar un pequeo cdigo para que veas como hace el UPLOAD: package subiendo_archivo; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPReply; public class Subiendo_archivo { public static void main(String[] args) { FTPClient client = new FTPClient(); try { client.connect("your server.com"); // When login success the login method returns true. boolean login = client.login("user", "password"); if (login) { System.out.println("Iniciando sesin Satisfactoriamente");
Lalo comento...
el dia 29/10/2012 a las 17:34

int replay = client.getReplyCode(); if (FTPReply.isPositiveCompletion(replay)) { File file = new File("/el archivo que subiras"); FileInputStream input = new FileInputStream(file); client.setFileType(FTP.BINARY_FILE_TYPE); client.enterLocalPassiveMode(); if (!client.storeFile(file.getName(),input)) { System.out.println("Subida fallida!");
Lalo comento...
el dia 29/10/2012 a las 17:36

} input.close(); } // When logout success the logout method returns true. boolean logout = client.logout(); if (logout) { System.out.println("Salir del servidor FTP"); } }
Lalo comento...
el dia 29/10/2012 a las 17:37

else { System.out.println("Fall inciar sesin"); } } catch (Exception e) { e.printStackTrace(); } finally { try { client.disconnect(); }
http://www.compujuy.com.ar/postx.php?id=54 87 / 264

CLIENTE}FTP EN JAVA

15/12/2012

catch (IOException e) { e.printStackTrace(); } } } }


Lalo comento...
el dia 29/10/2012 a las 17:39

Listo ivan disculpa que haya puesto as el cdigo pero aqu restringe mucho la cantidad de caractres. De cualquier forma ah est el cdigo y obviamente agrega a tu classphat el .jar de commons net 3.1, saludos.
INGRESA TU COMENTARIO

NOMBRE MAIL

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=54

88 / 264

COMANDOS DOS EN JAVA

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

COMANDOS DOS EN JAVA

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

Una vez me vi en la necesidad de querer ejecutar comandos DOS, era para una materia que se llamaba Compiladores e Intrpretes, ya que necesitaba desde java poder compilar directamente un archivo de c++. Razn de este post para explicar cmo poder realizar un ping por ej. Desde una aplicacin en java, haciendo uso de DOS. Haremos uso de la instancia de la clase Runtime que se est ejecutando de nuestra maquina virtual. Utilizamos la clase Runtime, ya que nos se puede instanciar directamente a esta clase, lo que se hace es obtener una referencia de la misma mediante el mtodo getRuntime(), de la siguiente manera Runtime comando= Runtime.getRuntime(); Una vez referenciada la clase Runtime, se ejecutar comandos DOS, mediante el mtodo exec, Cuando abrimos la ventana de comandos en DOS, lo que estamos haciendo es ejecutando un programa que se llama cmd.exe, y este programa es el que ejecuta los comandos, por ejemplo cuando realizamos un ping o un tracert. Por tal razn si queremos realizar un dir desde java, al mtodo exec, le pasamos una cadena, en la que debemos incluir la lnea cmd /c antes del comando. comando.exec(cmd /c dir) El mtodo exec dispara excepciones, de modo tal que es necesario encerrar la sentencia con bloques try y catch. Para demostrar en este caso crearemos una sencilla aplicacin en java en netbeans, y sobre nuestro main incluiremos las siguientes lneas Runtime com = Runtime.getRuntime(); try{ com.exec("cmd /c ipconfig > e:\\archivo.txt"); } catch(Exception e){ System.out.println(e.getMessage()); } En este caso lo que estamos haciendo es ejecutar el comando ipconfig y re direccionando la salida a un archivo de texto archivo.txt ubicado en la unidad e:\ En mi caso el main me queda as

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6819) JPA EN NETBEANS CON MYSQL (7667) APLICAR ESTILO CSS EN JSF (9674)

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773)

http://www.compujuy.com.ar/postx.php?id=55

89 / 264

COMANDOS DOS EN JAVA

SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

15/12/2012

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223) CLICK AQUI

COMPARTI ESTE SITIO

Interes en gral.!!
Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

Ejecutamos el archivo y vemos que no hay errores

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

Map

Satellite

Hybrid

Comprobamos que el archivo ha sido creado.

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Eso es todo lo uqe hay que realizar para poder ejecutar comando DOS en java, hasta pronto!!

http://www.compujuy.com.ar/postx.php?id=55

90 / 264

COMANDOS DOS EN JAVA

15/12/2012

eldba comento...

el dia 05/10/2010 a las 15:30

pibe esta bueno este servicio que proporciona Java pero es una muestra mas que todos los ides, software, So, etc etc etc.... No Microsoft siguen desarrollando productos que se adapten o que sean equivalentes al Mounstruo de la informatica. Pensalo y contestame. Sdos LTA

rafa comento...

el dia 06/10/2010 a las 08:01

Al DBA, si pero este es un servicio mas, nada mas y su en algunos casos si asi es porq todos quieren vender y por supuesto que se tiene q parecer a lo q la gente mas tiene en sus casa "WINDOWS", pero yo no estoy en contra de eso, no soy fan del soft libre ni nada de eso, hay q acomodarse a la demanda.....

rafa comento...
<pre>HA Y VOS LTA SIEMPRE...</pre>

el dia 18/10/2010 a las 22:40

pepe comento...

el dia 09/05/2012 a las 19:46

Muchas gracias hermano me fue de mucha ayuda se te agradece.


Jerry comento...
el dia 18/09/2012 a las 21:24

Hey muchas gracias!!!!!!!!


Danny comento...
el dia 30/11/2012 a las 20:50

Hola, gracias por el aporte, una pregunta como le harias para poder interpretar las tildes ? ya q el ejemplo no reconoce las tildes del alfabeto latino saludos
INGRESA TU COMENTARIO

NOMBRE MAIL

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

http://www.compujuy.com.ar/postx.php?id=55

91 / 264

COMANDOS DOS EN JAVA

15/12/2012

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=55

92 / 264

PRUEBAS UNITARIAS CON JUNIT EN JAVA.

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

PRUEBAS UNITARIAS CON JUNIT EN JAVA.

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

Dentro de las distintas fases del desarrollo de software, adems de los requerimientos, diseo, desarrollo etc., una de las ms importantes es la fase de pruebas, en esta se comp rueba si nuestro cdigo desarrollado realmente esta haciendo con lo que se especifico, por otra parte ac en donde se verifica que el proyecto cumpla con los requerimientos que fueron especificados por el cliente en la fase de analisis. Existen varios tipos de pruebas, sin embargo, algunas de las ms bsicas que existen son las pruebas unitarias que prueban los distintos mdulos que conforman el proyecto y que son el inicio para la correcta realizacin de los demas tipos de pruebas, en nuestro caso son las pruebas realizadas sobre cada clase desarrollada analizando cada uno de los mtodos de la misma. Para las distintas pruebas que se pueden realizar, existen distintas herramientas y en especfico para las pruebas unitarias existe Junit, que es un framework para realizarlas sobre codigo Java, que es una derivacin de XUnit que existe tanto para php como para .NET. Este tipo de herramientas hacen que el esfuerzo y el trabajo en la fase de pruebas se reduzca, permitiendo que el desarrollador o tester se centre en la verificacin de resultados correctos y no escribiendo cdigo extenso para realizar sus pruebas. Por otro lado podemos decir que un framework o conjunto de librerias, que se utilizan en las aplicaciones escritas en lenguaje java las cuales puden ser testeadas apartir de pruebas unitarias con la ayuda de este framework la cual proporciona clases de las cuales se pueden heredar para formar las nuevas clases que seran las que realizen las pruebas unitarias ha cada una de las clases que conformen nuestra aplicacion o proyecto, una prueba puede estar conformada por una serie de datos, utilizacion y resultados, este ultimo se compara con los datos que en realidad deberia de mostrar el software para tener un conocimiento si nuestra aplicacion esta cumpliendo con hacer lo solicitado.. Que es un Assert en JUint? Es una clase del paquete junit.framework la cual nos proporciona un conjunto de metodos los cuales son lo que realmente hacen la prueba si un metodo especifico de nuestra clase esta hacen las cosas correctamente como deberia, y el funcionamiento de estos metodos no es complicada simplemente si la condicion da algun tipo de error entonces la prueba no cumple con lo solicitado es decir que se genero un error en la prueba unitaria.Osea los siguientes asserts lo utilizamos para verificar resultados que ya sonocemos de antemano con los que nos devuelve un mtodo de una clase por ejemplo. A continuacion una lista de las pruebas que nos proporciona Assert: assertArrayEquals ( byte[] esperado, byte[] real ) Afirma que dos matrices de bytes son iguales. assertArrayEquals ( char[] esperado, char[] real ) Afirma que dos conjuntos de caracteres son iguales. assertArrayEquals ( int[] esperado, int[] real ) Afirma que dos matrices son iguales int. assertArrayEquals ( long[] esperado, long[] real ) Afirma que dos matrices son iguales largo. assertArrayEquals ( Object[] esperado, Object[] real )
http://www.compujuy.com.ar/postx.php?id=56

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6819) JPA EN NETBEANS CON MYSQL (7667) APLICAR ESTILO CSS EN JSF (9674)

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223) CLICK AQUI

COMPARTI ESTE SITIO

Interes en gral.!!
93 / 264

PRUEBAS UNITARIAS CON JUNIT EN JAVA. assertArrayEquals ( Object[] esperado,

Object[] real ) Afirma que dos conjuntos de objetos son iguales. assertArrayEquals ( short[] esperado, short[] real ) Afirma que dos breves conjuntos son iguales. assertArrayEquals (String mensaje, byte[] esperado, byte[] real) Afirma que dos matrices de bytes son iguales. assertArrayEquals ( String mensaje, char[] esperado, char[] real ) Afirma que dos conjuntos de caracteres son iguales. assertArrayEquals ( String mensaje, int[] esperado, int[] real) Afirma que dos matrices son iguales int. assertArrayEquals ( String mensaje, long[] esperado, long[] real ) Afirma que dos matrices son iguales largo. assertArrayEquals ( String mensaje, Object[] esperado, Object[] real) Afirma que dos conjuntos de objetos son iguales. assertArrayEquals ( String mensaje, short[] esperado, short[] real ) Afirma que dos breves conjuntos son iguales. assertEquals (double esperado, double real, double delta) Afirma que dos doubles o float son iguales dentro de un delta. assertEquals ( long esperado, long real ) Asserts that two longs are equal. Afirma que dos largos son iguales. assertEquals (Object esperado, Object real ) Afirma que dos objetos son iguales. assertEquals (String mensaje, double esperado, double real, double delta) Afirma que dos doubles o float son iguales dentro de un delta. assertEquals ( String mensaje, long esperado, long real ) Afirma que dos long son iguales. assertEquals ( String message, Object expected, Object actual ) Afirma que dos objetos son iguales. assertFalse ( boolean condicion ) Afirma que una condicin es falsa. assertFalse (String mensaje, boolean condicion) Afirma que una condicin es falsa. assertNotNull (Object objeto) Afirma que un objeto no es nulo. assertNotNull (String mensaje, Object objeto) Afirma que un objeto no es nulo. assertNotSame (Object noEsperado, Object real) Afirma que dos objetos no se refieren al mismo objeto. assertNotSame (String mensaje, Object noEsperado, Object real) Afirma que dos objetos no se refieren al mismo objeto. assertNull (Object objeto) Afirma que un objeto es nulo. assertNull ( String mensaje, Object objeto) Afirma que un objeto es nulo. assertSame (Object esperado, Object real) Afirma que dos objetos se refieren al mismo objeto. assertSame (String mensaje, Object esperado, Object real) Afirma que dos objetos se refieren al mismo objeto. assertTrue (boolean condicion) Afirma que una condicin es verdadera. assertTrue (String mensaje, boolean condicion) Afirma que una condicin es verdadera. fail () Falla una prueba y sin mensaje.

15/12/2012

Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

Map

Satellite

Hybrid

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

http://www.compujuy.com.ar/postx.php?id=56

94 / 264

PRUEBASFalla una CON JUNITy sin mensaje. fail () UNITARIAS prueba EN JAVA.

15/12/2012

fail (String message) Falla una prueba con un mensaje dado. A continuacin veremos como crear pruebas unitarias de manera sencilla con Netbeans 6.8. Si alguna vez creamos un proyecto en Netbeans abremos observado que en el rbol de proyecto existe un directorio llamado Paquetes de Prueba, en estos se ubican nuestras clases derivadas de TestCase, la cual nos sirve para realizar nuestras pruebas unitarias. Creamos un proyecto en Netbeans

Elegimos aplicacin java

Le damos un nombre, en mi caso Prueba y terminamos.

Creamos una clase Operacion

http://www.compujuy.com.ar/postx.php?id=56

95 / 264

PRUEBAS UNITARIAS CON JUNIT EN JAVA.

15/12/2012

Le agregamos 2 metodos sumar y restar, que simplemente nos realiza tales operaciones
public double suma(double a, double b){ return a+b;
}

public double resta(double a, double b){ return a-b;


}

Nuestra clase nos queda de la siguiente manera

Bien a continuacin crearemos las clases que nos servirn de prueba para nuestros mtodos, para ello seleccionamos nuestra clase->Herramientas>Crea prueba Junit

http://www.compujuy.com.ar/postx.php?id=56

96 / 264

PRUEBAS UNITARIAS CON JUNIT EN JAVA.

15/12/2012

Nos aparece la siguiente ventana elegimos la versin Junit 4.x

En la siguiente ventana destildamos la opcin Probar inicializador y finalizador (que para este caso no la utilizaremos) y le damos click en aceptar

Si extendemos el nodo de nuestro proyecto veremos que tenemos creada nuestra clase de prueba OperacionTest, la cual nos servir para probar directamente los mtodos de nuestra clases Operacin.

Y en la misma tenemos creado nuestro mtodos que nos servirn de prueba testResta y testSuma como lo muestra la imagen

http://www.compujuy.com.ar/postx.php?id=56

97 / 264

PRUEBAS UNITARIAS CON JUNIT EN JAVA.

15/12/2012

En los dos mtodos podemos notar que podemos inicializar las variables a y b, que son las varibles que se sumaran en este mtodo de nuestra clase Operacion. Tambin tenemos una instancia de de nuestra clase Operacin Contamos con la variable expResult, la cual ser inicializada con el resultado de la suma que nosotros conocemos de antemano. Cambiamos los valores de las variables a=2.0 b=3.0 expResult=5.0 comentamos la lnea no la vamos a nesecitar //fail("The test case is a prototype."); Con el metodo de la resta hacemos prcticamente lo mismo, pero con valores distintos a=5.0 b=3.0 expResult=2.0 comentamos la lnea que no la vamos a nesecitar //fail("The test case is a prototype."); Nuestra clase de prueba nos queda de la siguiente manera

http://www.compujuy.com.ar/postx.php?id=56

98 / 264

PRUEBAS UNITARIAS CON JUNIT EN JAVA.

15/12/2012

Ahora no nos queda otra cosa que ejecutar nuestro archivo de prueba de la siguiente manera, click derecho sobre el archivo->ejecutar

Nos arroja los siguiente salida

Vemos que la prueba fue exitosa Ahora supongamos que el valor del mtodo suma con los valores de a=5.0 b=3.0 el resultado para la suma (que en la realidad no es asi) tendra que ser expResult=15.0 nos queda entonces asi nuesro metodo "suma " de la clase de prueba

http://www.compujuy.com.ar/postx.php?id=56

99 / 264

PRUEBAS UNITARIAS CON JUNIT EN JAVA.

15/12/2012

ejecutamos nuestro archivo de prueba y nos arroja la siguiente salida en la que observamos que el mtodo testSuma nos arroja un error por que no coinciden los resultados.

Eso es todo por ahora espero que haya servido como una simple introduccin a Junit, para realizar pruebas unitarias en la estapa del testeo durante el proyecto de desarrollo de software. Hasta pronto!!!

SDK22 comento...

el dia 20/10/2010 a las 22:30

GRACIAS AMIGO, JUSTO LO Q ANDABA BUSCANDO PARA UN TRABAJO DE LA FACU..

Patito comento... Carlos comento...

el dia 21/10/2010 a las 23:42

Muy bien por ud. rafa ... como siempre bien arriba...
el dia 28/03/2011 a las 00:20

muchisimas gracias por el ejemplo. un favor si tuvieras otros ejemplos sobre pruebas unitarias y de integracin con junit y netbeans 6.8 te lo agradederia estamos en contacto
rafa comento...
el dia 30/03/2011 a las 18:23

ok Carlos, pronto tengo planeado extender los post sobre pruebas con junit...
fer comento...
el dia 05/10/2011 a las 11:25

Muchas Gracias por esta explicacion!! Muy interesante y muy bien explicada! Saludos!
mariluz comento...
http://www.compujuy.com.ar/postx.php?id=56

el dia 31/05/2012 a las 12:19


100 / 264

PRUEBAS UNITARIAS CON JUNIT EN JAVA.

15/12/2012

podrias hacer un ejemplo con assertSame??


alvaro comento...
el dia 24/06/2012 a las 19:51

Y este ejemplo es tambien valido para el programa eclipse?


rafa comento...
el dia 25/06/2012 a las 14:50

El ejemplo en si si...pero la forma de hacerlo con el netbeans, obviamente que no.. pero si copias el codigo nada mas es exactamente igual
Erik comento...
el dia 18/08/2012 a las 23:06

Muy bien explicado, gracias tio.


INGRESA TU COMENTARIO

NOMBRE MAIL

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=56

101 / 264

HOLA MUNDO WEB CON JSF (JAVA)

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

HOLA MUNDO WEB CON JSF (JAVA)

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

JavaServer Faces (JSF) es una tecnologa 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 tecnologa que permite hacer el despliegue de las pginas.

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

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 navegacin de las pginas y dar soporte para internacionalizacin 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 pgina JSP. Un modelo de eventos en el lado del servidor. Administracin de estados. Beans administrados. En este post no explicaremos todos los tags de jsf, ni todas las opciones de configuracin, ya que en la web hay bastante sino que veremos como crear nuestra primer pagina jsp, haciendo uso de JSF, en Netbeans. Para ello en primer lugar abrimos nuestro ide NETBEANS (en mi caso 6.8), y creamos nuestro proyecto

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6819) JPA EN NETBEANS CON MYSQL (7667) APLICAR ESTILO CSS EN JSF (9674)

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

Ajax!!

Elegimos la tegnologia para trabajar en el proyecto, Java Web ->Web Application

AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223) CLICK AQUI

COMPARTI ESTE SITIO

Le damos el nombre y la ubicacin


http://www.compujuy.com.ar/postx.php?id=57

Interes en gral.!!
102 / 264

HOLA MUNDO WEB CON JSF (JAVA)

15/12/2012

Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

.Net!!

CONOCE JUJUY!!

Elegimos el servidor a utilizar y la version de JEE


Redes!! POSTS MAS VISTOS Tops!!
AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

Map

Satellite

Hybrid

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Elegimos el framework a utilizar y la versin (JAVA SERVER FACES) de JEE, tal como lo muestra la imagen. Y le damos click izq. en terminar..

Hasta aqu ya tenemos nuestro proyecto creado, con sus correspondiesntes archivos creados por el netbeans.

Ahora le agregaremos cdigo y configuracin para que nos muestre un hola mundo desde una pagina jsp con jsf. En primer lugar crearemos un Managed Bean. A las clases java que se asocian a los formularios JSF se les denomina Managed Beanss (cdigo que se ejecuta detrs de la pagina) ya que son los beans (clases java) que estn detras del formulario. Estos beans se referencian en el fichero de configuracion de JSF faceconfig.xml. Para crear un managed beans le damos click der. sobre Source Packages>Nuevo->Clase Java
http://www.compujuy.com.ar/postx.php?id=57 103 / 264

HOLA MUNDO WEB CON JSF (JAVA)

15/12/2012

Le damos el nombre Beans

Y ya tenemos creada nuestra clase, ahora crearemos una propiedad privada con sus correspondientes accesores (get y set). El cdigo de la clase es el siguiente
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.

import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; /** * * @author RAFAEL */


@ManagedBean(name="Beans") @RequestScoped public class Beans {

private String mensaje="hola mundo"; /** Creates a new instance of Beans */ public Beans() {
}

public String getMensaje() { return mensaje;


}

public void setMensaje(String mensaje) { this.mensaje = mensaje;


} }

Nos queda asi

http://www.compujuy.com.ar/postx.php?id=57

104 / 264

HOLA MUNDO WEB CON JSF (JAVA)

15/12/2012

Bien ahora ya tenemos nuestra clase Beans,java, la cual ser la que trabajara detrs de nuestra pagina sjp. Pero ahora nos falta agregar un archivos de configuracin faceconfig.xml, el cual ser el encargado de indicarle a la pagina cuales son las clases que puede utilizar, osea nuestro managed beans. Le damos click der. Sobre sobre WEB-INF->Nuevo->JSF Faces Configuration

Dejamos el nombre por defecto y le damos click izq. en terminar

Abrimos nuestro fichero facesconfg.xml y agregamos las siguientes lneas, en donde indicamos la clase a la que accedera nuestra pagina.
<managed-bean> <managed-bean-class>Beans</managed-bean-class> <managed-bean-name>clase</managed-bean-name> <managed-bean-scope>session</managed-bean-scope> </managed-bean>
Aquilo que estamos haciendo es aadir, como nuestro codigo detras de la pagina a nuestra clase Beans, y la referenciaremos en la pagina index.xhtml, por el nombre clase, y tendra un alcance de sesion (puede ser por aplicacion y tambien de peticion).

http://www.compujuy.com.ar/postx.php?id=57

105 / 264

HOLA MUNDO WEB CON JSF (JAVA)

15/12/2012

Nos queda de la siguiente manera

Ahora lo que nos queda es modificar nuestro index.xhtml Agregamos los siguientes tags jsf En esta imagen vemos que el netbeans ya reconoce el beans asociado a la pagina con su correspondiente propiedad.

El cdigo de nuestro index.xhtml nos queda asi


1. 2. <?xml version='1.0' encoding='UTF-8' ?> 3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 4. <html xmlns="http://www.w3.org/1999/xhtml" 5. xmlns:h="http://java.sun.com/jsf/html"> 6. <h:head> 7. <title>Facelet Title</title> 8. </h:head> 9. <h:body> 10. <h:outputLabel value="#{clase.mensaje}"></h:outputLabel> 11. </h:body> 12. </html>

en imagen

Ya estamos en condiciones de ejecutar nuestro primer pagina haciendo uso de jsf

http://www.compujuy.com.ar/postx.php?id=57

106 / 264

HOLA MUNDO WEB CON JSF (JAVA)

15/12/2012

Vemos nuestro mensaje en la pagina extrado desde un beans java. Bien en este ejemplo vimos como acceder a una propiedad de una clase java de manera sencilla haciendo uso de jsf, en prximos ejemplos veremos mucho mas. Hasta pronto

MANI comento...
AGUANTE PHP RAFA JA.....

el dia 24/10/2010 a las 19:08

Engels comento... Elber comento...

el dia 05/01/2011 a las 08:46

El mejor Ejemplo de JSF 2 Fcil y sencillo Gracias!


el dia 25/02/2011 a las 21:57

Muy Bueno el tuto.. gracias


Kevin comento...
el dia 15/04/2011 a las 13:47

Gracias por el aporte, la verdad yo soy programador en JSF sin embargo aun utilizo el WOODSTOOK para mis paginas, pero si quisiera irme acostumbrando a hacer mis paginas de otra manera por que ya no existe mas soporte para este proyecto.
rafa comento...
el dia 15/04/2011 a las 14:34

Si la verdad que yo antes tambien lo hacia con el woodstook, estaba bueno,con ese empece, pero al no tener soporte ya lo deje... saludos
claudia comento...
el dia 11/05/2011 a las 10:05

gracias un ejemplo muy util para los que recien iniciamos


naty comento...
el dia 28/09/2012 a las 12:29

Gracias muy bueno el ejemplo :)


Janis comento...
el dia 08/10/2012 a las 21:44

Es un ejemplo muy claro para los que inician en el aprendizaje del framework JSF :)
HenryBolivia comento...
http://www.compujuy.com.ar/postx.php?id=57

el dia 13/11/2012 a las 16:21

107 / 264

HOLA MUNDO WEB CON JSF (JAVA)

15/12/2012

buen ejemplo fue mi primera corrida JSF


INGRESA TU COMENTARIO

NOMBRE MAIL

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=57

108 / 264

HOLA MUNDO WEB (2) CON JSF (JAVA)

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

HOLA MUNDO WEB (2) CON JSF (JAVA)

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

En este post haremos el hola mundo, pero no como en el post anterior en la cual solo mostrbamos el mensaje el cargarse la pagina, sino que ahora lo haremos al presionar un botn de la pagina jsp. Para ello haremos uso de lo creado en el post anterior (hola mundo con jsf). Para una mejor compresin de el ejemplo visitemos el primer post
Hola mundo con jsf

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

En nuestra clase Beans agregaremos un mtodo mostrarMensaje(); y ya no iniciaremos la variable mensaje, el cdigo es el siguiente
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.

import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; /** * * @author RAFAEL */


@ManagedBean(name="Beans") @RequestScoped public class Beans {

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6819) JPA EN NETBEANS CON MYSQL (7667) APLICAR ESTILO CSS EN JSF (9674)

private String mensaje; /** Creates a new instance of Beans */ public Beans() { System.out.println("sssss2222222222");
}

public String getMensaje() { return mensaje;


}

public void setMensaje(String mensaje) { this.mensaje = mensaje;


}

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

public void mostrarMensaje(){ this.mensaje="Hola Mundo";


} }

en imagenes asi

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223) CLICK AQUI

COMPARTI ESTE SITIO

Interes en gral.!!
http://www.compujuy.com.ar/postx.php?id=61 109 / 264

HOLA MUNDO WEB (2) CON JSF (JAVA)

15/12/2012

Ahora modificaremos nuestro index.xhtml, insertaremos un formulario y dentro de este un botn y la etiquete en donde se mostrara en lensaje hola mundo. En el botn insertado, sobre el evento action del mismo lo asociaremos al mtodo mostrarMensaje recientemente creado en nuestra clase Beans, referenciada como "clase" en el facesconfig.xml

1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2. <html xmlns="http://www.w3.org/1999/xhtml" 3. xmlns:h="http://java.sun.com/jsf/html"> 4. <h:head> 5. <title>Facelet Title</title> 6. </h:head> 7. <h:body> 8. <h:form> 9. <h:outputLabel id="lblMensaje" value="#{clase.mensaje}"></h:outputLabel> 10. <h:commandButton action="#{clase.mostrarMensaje}" value="Mensaje"></h:commandButton> 11. </h:form> 12. </h:body> 13. </html>

Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

Map

Satellite

Hybrid

Como lo muestra la imagen podemos ver como el Netbeans ya reconoce nuestro mtodo creado en la clase Beans referenciada como clase

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Nuestro archivos facesconfig.xml, queda como estaba


1. <?xml version='1.0' encoding='UTF-8'?> 2. <!-- =========== FULL CONFIGURATION FILE

================================== -->
3. <faces-config version="2.0" 4. xmlns="http://java.sun.com/xml/ns/javaee" 5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 6. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"> 7. <managed-bean> 8. <managed-bean-class>Beans</managed-bean-class> 9. <managed-bean-name>clase</managed-bean-name> 10. <managed-bean-scope>session</managed-bean-scope> 11. </managed-bean>

Como lo muestra la imagen

http://www.compujuy.com.ar/postx.php?id=61

110 / 264

HOLA MUNDO WEB (2) CON JSF (JAVA)

15/12/2012

Bien con esto estamos en condiciones de ejecutar nuestra aplicacin web jsf Nos aparece la pantalla anterior le damos click al botn y nos aparece el mensaje

Bien esto es todo por ahora, hasta pronto

Cristian comento...

el dia 18/03/2011 a las 19:08

Hola muy buenos los tutoriales, me podrias hacer el favor de subir algun ejemplo de como se maneja <ui:include con eclipse desde ya gracias
http://www.compujuy.com.ar/postx.php?id=61 111 / 264

HOLA MUNDO WEB (2) CON JSF (JAVA)

15/12/2012

Martin comento...

el dia 24/07/2011 a las 22:08

Muchas gracias por los tutoriales!!! Estan bien facil de entender!


yo comento...
el dia 10/08/2011 a las 15:59

gracias
hebert comento...
el dia 01/10/2012 a las 15:19

hola pariente bueno para empezar esta bien pero no lo veo nada diferente de un simple jsp porque incluso podes llamar a las clases, si es que me podes decir para que sirve realmente el jsf, y no lo que ponen en el internet porque no veo que un usuario simple pueda hacer algo interesante con esto
INGRESA TU COMENTARIO

NOMBRE MAIL

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=61

112 / 264

EJECUTAR CODIGO JAVA SCRIPT EN JAVA

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

EJECUTAR CODIGO JAVA SCRIPT EN JAVA

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

A partir del jdk 6 java posee la posibilidad de poder ejecutar cdigo Java Script en una aplicacin JSE, o una JEE del lado del servidor . Quizas algn dia nos encontremos en la necesidad de ejecutar cdigo java script, pero dentro de una aplicacin java sin la necesidad de abrir un navegador. Algunas de las razones de poder ejecutar cdigo Java Script podran ser las siguientes:
Tranquilamente podramos externalizar parte de la aplicacin, es decir podemos tener un archivo Java Script, fuera de nuestra aplicacin y poder cambiarlo dinmicamente segn nuestras necesidades Al ser un lenguaje de scripting, no son fuertemente tipados, es decir no es necesario declarar el tipo de variable a usar, o bien creamos una variable y la inicializamos como entera, luego podemos asignar a la misma variable un string y no va a haber problemas.

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6819) JPA EN NETBEANS CON MYSQL (7667) APLICAR ESTILO CSS EN JSF (9674)

En este post veremos como realizar ejecutar una pequea porcin de cdigo Java Script, en una aplicacin Java. La funcionalidad Java Script se encuentra en el paquete javax.script, por tal motivo necesitamos importar tal paquete . Se trata de una API relativamente pequea y simple. La forma ms sencilla de utilizar la API de secuencias de comandos es la siguiente: 1. Crear un ScriptEngineManager objeto. 2. Obtener un objeto ScriptEngine de la instancia ScriptEngineManager. 3. Evaluar lneas java script utilizando el mtodo eval de ScriptEngine Como siempre usamos Netbeans, nos creamos un proyecto Java, y en nuestro Main agregamos las siguientes lneas
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

package aplicacion; import javax.script.*; /** * * @author RAFAEL */ public class Main { /** * @param args the command line arguments */ public static void main(String[] args) throws ScriptException { // creamos el objeto script de ScriptEngineManager ScriptEngineManager script = new ScriptEngineManager(); //del objeto script obtenemos la instancia del tipo //JavaScript y se la asignamos al objeto js del tipo ScriptEngine
ScriptEngine js = script.getEngineByName("JavaScript");

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

17. 18. 19. 20. 21. 22. 23. }

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223) CLICK AQUI

// evaluamos lineas java script


js.eval("print('HOLA MUNDO ')"); }

COMPARTI ESTE SITIO

Observamos la salida, y vemos nuestro hola mundo

http://www.compujuy.com.ar/postx.php?id=62

113 / 264

EJECUTAR CODIGO JAVA SCRIPT EN JAVA

15/12/2012

Interes en gral.!!
Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

Map

Satellite

Hybrid

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Ahora incluiremos una funcin y la invocaremos, para ello agregamos las siguientes lneas,
ScriptEngineManager script = new ScriptEngineManager(); ScriptEngine js = script.getEngineByName("JavaScript");

// Aanidimos al string codigo JavaScript String codigo = "function hola(nombre) { print('Hola, ' +
nombre); }";

// ejecutamos las lineas


js.eval(codigo);

// creamos un objeto inv a partir de la referencia js


Invocable inv = (Invocable) js;

// invocamos a la funcion hola partir del metodo //invokeFunction("nombre de la funcion","parametros")


inv.invokeFunction("hola", "JAVA" );

Ejecutamos y observamos la salida

http://www.compujuy.com.ar/postx.php?id=62

114 / 264

EJECUTAR CODIGO JAVA SCRIPT EN JAVA

15/12/2012

A pedido ahora veremos un poquito de codigo mas trabajado javascript, para poder ejecutarlo desde una apliacion desktop o bien del lado del servidor, El siguiente codigo es el que podriamos tener en una pagina web, encerrado entre etiquetas <script></script>
<?xml version="1.0" encoding="UTF-8"?> <!-To change this template, choose Tools | Templates and open the template in the editor. --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF8"/> <title>TODO supply a title</title> <script type="JavaScript" > function suma(a,b){ var resultado= a+b; return resultado; } function resta(a,b){ var resultado= a-b; return resultado; } function multiplicacion(a,b){ var resultado= a*b; return resultado; } function division(a,b){ var resultado= a/b; return resultado; } function SumaYMultiplica(){ var resultado=suma(2, 10)+multiplicacion(2, 4); return resultado; } </script> </head> <body> </body> </html>

Bien tal codigo lo podriamos ejecutar dentro de una aplicacion java, que se este ejecutando del lado del servidor o bien en una aplicacion desktop JSE como lo haremos a continuacion, disponemos del siguiente codigo java para
http://www.compujuy.com.ar/postx.php?id=62 115 / 264

EJECUTAR CODIGO JAVAa continuacion, como lo haremos SCRIPT EN JAVA

disponemos del siguiente codigo java para poder ejecutar el codigo JS anteriornmente citado
import import import import
javax.script.Invocable; javax.script.ScriptEngine; javax.script.ScriptEngineManager; javax.script.ScriptException;

15/12/2012

public class Main { public static void main(String[] args) throws ScriptException, NoSuchMethodException { ScriptEngineManager script = new ScriptEngineManager();
ScriptEngine js = script.getEngineByName("JavaScript");

// Aanidimos al string codigo JavaScript String codigo = "function suma(a,b){"+


"var resultado= a+b;"+ "return resultado;"+ "}"+ "function resta(a,b){"+ "var resultado= a-b;"+ "return resultado;"+ "}"+ "function multiplicacion(a,b){"+ "var resultado= a*b;"+ "return resultado;"+ "}"+ "function division(a,b){"+ "var resultado= a/b;"+ "return resultado;"+ "}" + "function SumaYMultiplica(){" + "var resultado=suma(2, 10)+multiplicacion(2, 4);" + "return resultado;" + "}" ; js.eval(codigo); Invocable inv = (Invocable) js; System.out.println(inv.invokeFunction("suma",1,4)); System.out.println(inv.invokeFunction("resta",12,4)); System.out.println(inv.invokeFunction("multiplicacion",16,34)); System.out.println(inv.invokeFunction("division",100,4)); System.out.println(inv.invokeFunction("SumaYMultiplica")); } }

Bien ahora ya estamos en condiciones de ejecutar nuestro codigo, en donde llamamos a cada una de las funciones JS implementadas, la salida es la siguiente con los correspondientes resultados de las funciones.

http://www.compujuy.com.ar/postx.php?id=62

116 / 264

EJECUTAR CODIGO JAVA SCRIPT EN JAVA

15/12/2012

Debemos tener en cuenta que desde este codigo no podemos llamar ninguna etiqueta html, recordemos que esto lo estamos ejecutando del lado del servidor o bien desde una aplicacion de escritorio, pero no del lado del cliente.... Bien con esto vimos como tenemos en java la posibilidad de poder ejecutar java script del lado del servidor si quisiramos, o bien en una aplicacin JSE.

FOR comento...

el dia 01/11/2010 a las 08:07

Bien , pero nose si algun dia, yo en mi caso nesecitare usar esto, pero esta bien

iplazlac comento...

el dia 23/11/2010 a las 12:11

Hola, lo primero gracias porque llevo un tiempo buscando algo como eso. Aun asi tengo unas dudas. Entiendo de Java, pero soy un completo inutil en JavaScript y me ha tocado enfrentarme a ello en el proyecto de fin de carrera. Te cuento mi problema, aunque entiendo (o eso creo) tu codigo y funciona a la perfeccin los codigos JS que yo conozco son mas o menos: <SCRIPT Language="JavaScript"> codigo </SCRIPT> y se ejecutan con un navegador. Como puedo yo ejecutar un codigo de ese tipo desde java?

iplazlac comento...

el dia 23/11/2010 a las 12:13

Continuo. Mi aplicacion hace unos calculos de coordenadas y quiero dar el resultado en un google maps. Eso es un javascript bastante grande. Puedo ejecutarlo desde Java de esta manera? Veo que java imprime los mensajes sin problema, pero como se enfrenta a un problema mas complejo? Ejecuta un navegador propio o algo por el estilo? Bueno gracias de nuevo por tu tiempo. Un saludo

rafa comento...

el dia 23/11/2010 a las 13:57

Que tal iplazlac, java desde las ultimas versiones incorpora el parte del nucleo firefox para algunas funcionalidades, de ahi que puede hacer algunas cosas de los navegadores, y claro q puedes ejecutar codigo JS desde una aplicacion Desktop o bien del lado del servidor, pero ten en cuenta que desde aqui no puedes llmar tags HTML, recuerda que este codigo no se esta ejecutando del lado del cliente, y ahi te agregue al post otro ejemplo.. espero que te sirva, cualquier duda consulta. saludos

iplazlac comento...

el dia 24/11/2010 a las 09:06

Hola rafa. Muchas gracias por los aportes, me ha sido de mucha utilidad. Un saludo
INGRESA TU COMENTARIO

NOMBRE MAIL

http://www.compujuy.com.ar/postx.php?id=62

117 / 264

EJECUTAR CODIGO JAVA SCRIPT EN JAVA

15/12/2012

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=62

118 / 264

VALOR DE UNA FUNCION MATEMATICA EN JAVA

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

VALOR DE UNA FUNCION MATEMATICA EN JAVA

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

Para trabajos de programacin aplicada, como por ejemplo para clculos numricos, aveces hacemos uso de funciones matematicas, ya sean lineales, cuadrticas, cubicas, trigonomtricas etc. Y nos encontramos en la necesidad de poder analizar en valor de una funcin especifica, en el caso de ser una solo funcin no habra problemas, pero en el caso de ser cualquier funcin nos encontramos en la necesidad de quizs expresar la funcin de la forma mas conocida, como por ejemplo para funciones cuatraticas la podramos escribir del siguiente modo: ' yf(x)=ax2+bx+c En un programa la escribiramos del siguiente modo Yf(x)=ax ^2+bx+c O bien para una funcin trigonomtrica Yf(x)=sen(ax ^2)+bx+tan c

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6819) JPA EN NETBEANS CON MYSQL (7667) APLICAR ESTILO CSS EN JSF (9674)

Para escribirlas de ese modo necesitamos una clase o algo parecido, que nos pueda aceptar tal expresin y poder calcular el valor de la funcin segn el valor de x que le demos. En este post se describir una clase que hace tal tarea, osea podemos eviarle a la clase una expresin como la anterior, con un valor de x, y que la misma me realice el calculo. El cdigo a continuacin es el cdigo de la clase Funcion
package funciones; import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; /** * * @author RAFAEL */ public class Funcion { private String operacion; private String resultadoConversion; private String resultadoOperacion; private int indiceIni; private int indiceFin; private String valor; public Funcion() {
}

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223) CLICK AQUI

public String evaluar( String operacion, String valor){ this.operacion=operacion; this.valor=valor; this.resultadoConversion=analizaCadena(this.operacion); this.resultadoConversion=reemplazaOperacionJS(this.resultadoConversion); return this.resultadoOperacion=calculo(this.resultadoConversion);
}

COMPARTI ESTE SITIO

private String analizaCadena(String cadena){


http://www.compujuy.com.ar/postx.php?id=67

Interes en gral.!!
119 / 264

VALOR DE UNA FUNCION MATEMATICA EN JAVA

15/12/2012

cadena=cadena.replaceAll("x", this.valor); cadena=quitarEspacios(cadena); cadena="-"+cadena; char[] vectorCadena=cadena.toCharArray(); if(cadena.contains("^")){ cadena=reemplazaPotencia(vectorCadena, cadena); } vectorCadena=cadena.toCharArray(); if(cadena.contains("cos")){ cadena=reemplazaTrigonometrica(vectorCadena, cadena, ".co",'c'); } vectorCadena=cadena.toCharArray(); if(cadena.contains("sen")){ cadena=reemplazaTrigonometrica(vectorCadena, cadena, ".si",'s'); } vectorCadena=cadena.toCharArray(); if(cadena.contains("tan")){ cadena=reemplazaTrigonometrica(vectorCadena, cadena, ".ta",'t'); }

Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

return cadena;
}

Map

Satellite

Hybrid

private String reemplazaParIzq(char[] cadena,int indice){ ArrayList<Character> lista1=new ArrayList<Character>(); ArrayList<Character> lista2=new ArrayList<Character>(); String res=""; int i;
for ( i = indice-1; i >=0; i--) { if(cadena[i]==')'){ lista1.add(cadena[i]); } else { if(cadena[i]=='('){ lista2.add(cadena[i]); } } res+=cadena[i]; if((lista1.size()==lista2.size())&&(i!=(indice-1))){ this.indiceIni=i; return invertir(res); } } return null; }

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

private String reemplazaParDer(char[] cadena,int indice ){ ArrayList<Character> lista1=new ArrayList<Character>(); ArrayList<Character> lista2=new ArrayList<Character>(); String res=""; int i;
for ( i = indice+1; i <cadena.length ; i++) { if(cadena[i]=='('){ lista1.add(cadena[i]); } else { if(cadena[i]==')'){ lista2.add(cadena[i]); } } res+=cadena[i]; if((lista1.size()==lista2.size())&&(i!=(indice+1))){ this.indiceFin=i+1; return res; } } return null; }

private String reemplazaNumIzq(char[] cadena,int indice){ Pattern exp= Pattern.compile("\\\\d|\\\\."); Matcher expReg; String resultadoBase =""; String res = ""; for (int i = indice-1; i >=0; i--) {
res=""; res+=cadena[i]; expReg=exp.matcher(res); if (expReg.find()){ resultadoBase+=cadena[i]; this.indiceIni=i; } else { break; } }

return invertir(resultadoBase);
}

private String reemplazaNumDer(char[] cadena,int indice){ Pattern exp= Pattern.compile("\\\\d|\\\\."); Matcher expReg; String resultadoBase =""; String res = "";
http://www.compujuy.com.ar/postx.php?id=67 120 / 264

VALOR DE UNA FUNCION MATEMATICA EN JAVA

15/12/2012

for (int i = indice+1; i<cadena.length; i++) { res=""; res+=cadena[i]; expReg=exp.matcher(res); if (expReg.find()){ resultadoBase+=cadena[i]; this.indiceFin=i+1; } else { break; } } return resultadoBase; }

private String invertir(String cadena){ char[] vector=cadena.toCharArray(); String res=""; for (int i = vector.length-1; i >=0; i--) {
res+=vector[i]; }

return res;
}

private String reemplazaPotencia(char[] vectorCadena,String cadena){ String resIzq="",resDer=""; for (int indice = 0; indice < vectorCadena.length; indice++) {
if (vectorCadena[indice]=='^') { if (vectorCadena[indice - 1] == ')') { resIzq =reemplazaParIzq(vectorCadena, } else{ resIzq =reemplazaNumIzq(vectorCadena, } if (vectorCadena[indice + 1] == '(') { resDer =reemplazaParDer(vectorCadena, } else{ resDer =reemplazaNumDer(vectorCadena, } indice); indice); indice); indice);

vectorCadena=(cadena.substring(0,this.indiceIni)+".po(" +resIzq+","+resDer+")" +(cadena.substring(this.indiceFin,cadena.length()))).toCharArray(); cadena=(cadena.substring(0,this.indiceIni)+".po(" +resIzq+","+resDer+")"+(cadena.substring(this.indiceFin,cadena.length())) ); indice=0; } } return cadena; } private String reemplazaTrigonometrica(char[] vectorCadena,String cadena,String operacion,char caracter){ String resDer=""; for (int indice = 0; indice < vectorCadena.length; indice++) { if ((vectorCadena[indice]==caracter)&&((vectorCadena)[indice-1]!='.')&&(indice!=0)) { if (vectorCadena[indice + 3] == '(') { resDer =reemplazaParDer(vectorCadena, indice+2); } else{ resDer =reemplazaNumDer(vectorCadena, indice+2); } vectorCadena=(cadena.substring(0,indice)+operacion+"(" +resDer+")"+(cadena.substring(this.indiceFin,cadena.length())) ).toCharArray(); cadena=(cadena.substring(0,indice)+operacion+"(" +resDer+")"+(cadena.substring(this.indiceFin,cadena.length())) ); indice=0; } } return cadena; } public String getResultadoConversion() { return this.resultadoConversion; }

public String getResultadoOperacion() { return resultadoOperacion;


}

private String quitarEspacios(String sTexto){ String sCadenaSinBlancos=""; for (int x=0; x < sTexto.length(); x++) {
if (sTexto.charAt(x) != ' ') sCadenaSinBlancos += sTexto.charAt(x); } return sCadenaSinBlancos;
http://www.compujuy.com.ar/postx.php?id=67 121 / 264

VALOR DE UNA FUNCION MATEMATICA EN JAVA

15/12/2012

private String reemplazaOperacionJS(String operacion){ this.resultadoConversion=operacion.replaceAll(".po","Math.pow"); this.resultadoConversion=this.resultadoConversion.replaceAll(".co","Math.cos"); this.resultadoConversion=this.resultadoConversion.replaceAll(".si","Math.sin"); this.resultadoConversion=this.resultadoConversion.replaceAll(".ta","Math.tan"); return this.resultadoConversion.substring(1, this.resultadoConversion.length());
}

private String calculo(String cadena) { ScriptEngineManager script = new ScriptEngineManager();


ScriptEngine js = script.getEngineByName("JavaScript"); try{ return js.eval(cadena).toString(); }catch(Exception e){ return e.toString(); } } }

Procederemos a explicar sencillamente y grandes rasgos lo que hace cada mtodo : public String evaluar( String operacion, String valor) Mtodo que evalua la cadena "operacion" que contiene la funcion a analizar con el valor "valor", este al igual que el metodo acceso de la propiedad resultado "getResultado" nos devuelve el valor de la funcion matematica expresada en "operacion" private String analizaCadena(String cadena) Mtodo que me analiza la cadea recibida del constructor, en este se evalua el contenido de la misma, es decir si existe una potencia, o una funcin trigonomtrica. private String reemplazaParIzq(char[] cadena,int indice) Recibe un array conteniendo la operacin y a partir del ndice recibido de evalua hasta donde es el alcance de la operacin contenida dentro de los parentesis. Es decir si recibe una array conteniendo (sen (1)-2+3) ^8 devuelve (sen(1)2+3) private String reemplazaParDer(char[] cadena,int indice ) Igual a la anterior pero evalua el alcance pero por la derecha, es decir en una potencia devuelve el exponente. private String reemplazaNumIzq(char[] cadena,int indice) En el caso de no haber parntesis, evalua el alcance pero de los nmeros que contiene la operacin, por ejemplo si la operacin es 233.4^8 devuelve 233.4
http://www.compujuy.com.ar/postx.php?id=67 122 / 264

VALOR DE UNA FUNCION MATEMATICA EN JAVA

15/12/2012

private String reemplazaNumDer(char[] cadena,int indice) Igual a la anterior pero devuelve el alcance de la operacin por la derecha. private String invertir(String cadena) invierte una cadena. private String reemplazaPotencia(char[] vectorCadena,String cadena) Si existe una potencia, este mtodo es el indicado para realizar la conversin,es decir Si en la cadena existe 233.4^8 lo reemplaza por .po(233.4,8) para ser evaluada luego. private String reemplazaTrigonometrica(char[] vectorCadena,String cadena,String operacion,char caracter) Reemplaza las funciones trigonomtricas, es decir si en la operacin llega sen (3), la reemplaza por .si(3), para luego ser evaluada. private String quitarEspacios(String sTexto) Quita espacios en blanco. private String reemplazaOperacionJS(String operacion) para este caso Utilizamos la libreria de JavaScript incorporada en java, asi que reemplazamos para que este lenguaje la pueda analizar, como ser si viene en la cadena .si (3), lo reemplazamos por Math.sin(3) private String calculo(String cadena) una vez analizada toda la cadena, se procede con este metodo a realizar el calculo, para ello hacemos uso de javascript (ver este post para mas informacion). La sintaxis para utilizar esta clase es la siguiente

http://www.compujuy.com.ar/postx.php?id=67

123 / 264

VALOR DE UNA FUNCION MATEMATICA EN JAVA

15/12/2012

Ahora crearemos un proyecto Java en Netbeans,y en nuestro Main incluimos las siguientes lneas para probar las funciones escritas anteriormente. En todos los ejemplos observamos que instanciamos la clase Funcion, llamamos el metodo evaluar, y luego mostramos por la salida estndar la conversin que realiza la clase y el valor de la funcin. El constructor es inicializado, con la cadena que contiene la operacin, mas el valor que le vamos a dar al valor de x. Probamos la potencia
import javax.script.ScriptException; public class Main { public static void main(String[] args) throws ScriptException { String cadena="3^x+32+4^(2+x)";// Funcion f=new Funcion();
f.evaluar(cadena, "2"); System.out.println(f.getResultadoConversion()); System.out.println(f.getResultadoOperacion()); } }

El resultado es

Probamos la raz
import javax.script.ScriptException; public class Main { public static void main(String[] args) throws ScriptException { String cadena="x^(1/2)"; Funcion f=new Funcion();
f.evaluar(cadena, "144"); System.out.println(f.getResultadoConversion()); System.out.println(f.getResultadoOperacion()); System.out.println(Math.cos(1)); }
http://www.compujuy.com.ar/postx.php?id=67 124 / 264

VALOR DE UNA FUNCION MATEMATICA EN JAVA

15/12/2012

La salida es

Probamos las trigonomtricas


import javax.script.ScriptException; public class Main { public static void main(String[] args) throws ScriptException { String cadena="sen(34*2)+tan x"; Funcion f=new Funcion();
f.evaluar(cadena, "1"); System.out.println(f.getResultadoConversion()); System.out.println(f.getResultadoOperacion()); System.out.println(Math.cos(1)); } }

La salida es

Probamos una mezcla de las anteriores


import javax.script.ScriptException; public class Main { public static void main(String[] args) throws ScriptException { String cadena="sen (34*x)+tan 1+32+x^(2+4-cos 3)"; Funcion f=new Funcion();
f.evaluar(cadena, "1.5"); System.out.println(f.getResultadoConversion());
http://www.compujuy.com.ar/postx.php?id=67 125 / 264

VALOR DE UNA FUNCION MATEMATICA EN JAVA

15/12/2012

System.out.println(f.getResultadoOperacion()); System.out.println(Math.cos(1));
} }

El resultado obtenido

Bien con esto terminamos, vimos la clase Funcion que nos puede resolver problemas que nos pueden aparecer como mencionamos en los mtodos numricos hasta pronto

'

rafa comento...
ULTIMA MODIFICACION 12.11.2010

el dia 11/11/2010 a las 22:23

PWD comento... MART comento... julio comento...

el dia 11/11/2010 a las 22:32

Eapecial para analisis numerico, a ver si sirve....


el dia 12/11/2010 a las 21:39

Thank by the example, can you upload the source code in this page..
el dia 20/01/2011 a las 13:28

esta muy bien el codigo. Lo he probado y para una ecuacion lineal y funciona. Que pasa si agregas la constante e pi. Lo he probado con eso y bota excepcion. 2*E javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "E" is not defined. (<Unknown source>#1) in <Unknown source> at line number 1

rafa comento...

el dia 20/01/2011 a las 14:40

Q tal Julio, y va a tirar una excepcion ahi, por q eso no esta definido en el codigo como lo esta definido el seno por ejemplo, para ello con este codigo habria q reemplazar pi por el 3.141592654, o el numero e por 2.71....

neto comento...

el dia 28/02/2011 a las 12:25

o puede utilizar el Math.E para euler, y demas caracteristicas de esta clase http://dow nload.oracle.com/javase/1.4.2/docs/api/java/lang/Math.html
http://www.compujuy.com.ar/postx.php?id=67 126 / 264

VALOR DE UNA FUNCION MATEMATICA EN JAVA

15/12/2012

el nico problema que tengo con esta es que lo reconozca en la cadena de los char, ya que el "e" podria confundirse con el "e" del "sen"...

rafa comento...

el dia 01/04/2011 a las 14:22

SI neto puede ser, no me he puesto a revisarlo, pero = no seria dificil restringir eso, solo con algunas modificaciones en el codigo..
deyu comento...
el dia 09/07/2011 a las 20:07

estaba probando tu codigo de integral y se queda pegado en reemplazaPotencia();


josue comento...
el dia 01/11/2011 a las 15:01

podrias subir el proyecto de este codigo de netbeans?


Daniel comento...
el dia 16/05/2012 a las 23:35

see porfavor sube el proyecto de netbeans esq no me sale el programa i mira que llevo toda la tarde aciendolo
SALVADOR comento...
el dia 02/06/2012 a las 14:14

Muy buen post bro!!


INGRESA TU COMENTARIO

NOMBRE MAIL

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=67

127 / 264

NAVEGACION CON JSF, EJEMPLO 3

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

NAVEGACION CON JSF, EJEMPLO 3

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

Para comprender mejor JSF, ahora hare otro ejemplo, para tratar de entender la navegacion con este framework para aplicaciones web java, lo que hare esta vez es que al presionar el botn nos redireccione a otra pagina mostrando un mensaje y validando la entrada en la pagina index.xhtml. Para una mejor compresin del ejemplo podemos revisar los dos post anteriores
Hola mundo con jsf Hola mundo con jsf 2

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

Antes de codificar veremos cmo se realiza la navegacin con JSF El desarrollador de la aplicacin define la navegacin por la aplicacin mediante el fichero de configuracin, faces-config.xml, el mismo fichero en el que se declararon los managed beans . Cada regla de navegacin define cmo ir de una pgina (especificada en el elemento from-view-id) a otras pginas de la aplicacin. El elemento navigation-rule puede contener cualquier nmero de elemento navigationcase, cada uno de los cuales define la pgina que se abrir luego (definida por to-view-id) basndose en una salida lgica (definida mediante fromoutcome). La salida se puede definir mediante el atributo action del componente UICommand que enva el formulario. Ahora vamos con las reglas de navegacin, de esta manera, indicamos a que pgina ir tras otra pgina. En este caso la navegacin es simple, tras pulsar el botn Aceptar, navegamos desde index.xhtml hasta hola.xhtml. Estas reglas de navegacin se especifican en el fichero faces-config.xml, como se muestra a continuacin:
1. 2. <?xml version='1.0' encoding='UTF-8'?> 3. <!-- =========== FULL CONFIGURATION FILE

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6819) JPA EN NETBEANS CON MYSQL (7667) APLICAR ESTILO CSS EN JSF (9674)

================================== -->
4. <faces-config version="2.0" 5. xmlns="http://java.sun.com/xml/ns/javaee" 6. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 7. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"> 8. 9. <managed-bean> 10. <managed-bean-class>Beans</managed-bean-class> 11. <managed-bean-name>clase</managed-bean-name> 12. <managed-bean-scope>session</managed-bean-scope> 13. </managed-bean> 14. <navigation-rule> 15. <from-view-id>/index.xhtml</from-view-id> 16. <navigation-case> 17. <from-outcome>login</from-outcome> 18. <to-view-id>/hola.xhtml</to-view-id> 19. </navigation-case> 20. </navigation-rule> 21. </faces-config>

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

Actualidad Informatica!!

El valor de from-outcome (login), indica la accin que se debe producir en la pgina from-view-id (index.xhtml) para navegar al destino representado por toview-id (hola.xhtml). La accin es un mero nombre que se da a los botones de un formulario; en nuestro caso, la pgina index.xhtml inclua la etiqueta:
<h:commandButton value="Aceptar" action="login"/>
http://www.compujuy.com.ar/postx.php?id=69

DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223)

CLICK AQUI

COMPARTI ESTE SITIO

Interes en gral.!!
128 / 264

NAVEGACION CON JSF, EJEMPLO 3

15/12/2012

Entonces nuestro facesconfig.xml nos queda asi Modificaremos nuestra clase Beans queda de la siguiente manera
1. public class Beans { 2. 3. private String mensaje; 4. 5. /** Creates a new instance of Beans */ 6. public Beans() { 7. } 8. 9. public String getMensaje() { 10. return mensaje; 11. } 12. 13. public void setMensaje(String mensaje) { 14. this.mensaje = mensaje; 15. } 16. public String redireccionar(){ 17. if (this.mensaje.trim().equals("compujuy")){ 18. this.mensaje="hola compujuy"; 19. return "login"; 20. } 21. else{ 22. return null; 23. } 24. } 25. } 26.

Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

Map

Satellite

Hybrid

50 mi Map data 2012 - Terms of Use 100 km

En esta clase tenemos el mtodo redireccionar, que analiza la propiedad mensaje que esta asociada al inputtext que se encuentra en el index.xhtml.Si this.mensaje es igual a compujuy entonces returna login, lo cual segn nuestro fecesconfig.xml, si en una accin de produce un login desde index.xhtml, se redirecciona al hola.xhtml, como lo describen las lneas
<navigation-rule> <from-view-id>/index.xhtml</from-view-id> <navigation-case> <from-outcome>login</from-outcome> <to-view-id>/hola.xhtml</to-view-id> </navigation-case> </navigation-rule>

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

C aso contrario de no ser this.mensaje (asociada al inputtext de index.xhtml) igual a compujuy, retornara null. Ahora modificamos nuestro index.xhtml, con las siguientes lneas
1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2. <html xmlns="http://www.w3.org/1999/xhtml" 3. xmlns:h="http://java.sun.com/jsf/html"> 4. <h:head> 5. <title>Facelet Title</title> 6. </h:head> 7. <h:body> 8. <h:form> 9. <h:inputText value="#{clase.mensaje}"></h:inputText> 10. <h:commandButton action="#{clase.redireccionar}" value="Aceptar"></h:commandButton> 11. </h:form> 12. </h:body> 13. </html> 14.

Como dijimos anteriormente el inpuText, su propiedad value se encuentra asociada a la propiedad mensaje de la clase Beans, que en este caso esta referenciada por clase, como lo especificamos en el facesconfig.xml., luego tenemos un commandButton, en donde la propiedad action, se encuentra asociada al mtodo redireccionar, y cuando este devuelve login se produce el redireccionamiento. Ahora nuestro archivo hola.xhtml queda de la sigueinte manera
1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2. <html xmlns="http://www.w3.org/1999/xhtml" 3. xmlns:h="http://java.sun.com/jsf/html"> 4. <h:head> 5. <title>Facelet Title</title> 6. </h:head> 7. <h:body> 8. <h:form> 9. <h:outputText value="#{clase.mensaje}"></h:outputText>
http://www.compujuy.com.ar/postx.php?id=69 129 / 264

NAVEGACION CON JSF, EJEMPLO 3

15/12/2012

10. </h:form> 11. </h:body> 12. </html> 13.

Nuestro rbol de proyecto tiene que quedar de la siguiente manera

Ahora ya estamos en condiciones de ejecutar el proyecto, ejecutamos nuestro proyecto y tendremos la siguiente pagina con el inputtext y el commandbutton

Ingresamos cualquier texto que no sea compujuy y veremos que no nos direcciona hacia ningn lado, pero de lo contrarios si ingresamos compujuy nos redirecciona a hola.xhtml,

http://www.compujuy.com.ar/postx.php?id=69

130 / 264

NAVEGACION CON JSF, EJEMPLO 3

15/12/2012

Bueno esto es solo un sencillo ejemplo para siguir entendiendo esta tecnologa, hasta pronto y aqui les ddejo el archivo para descarga proyecto.rar

Jodido comento...
bueno, algo me ayudo......

el dia 28/01/2011 a las 08:39

salvador comento...

el dia 25/03/2011 a las 18:05

he echo este ejemplo pero no consigo que en la pagina de hola salga el mensaje
rafa comento...
el dia 25/03/2011 a las 18:59

Hola, bueno noc cual sera la razon por la cual no te sale, pero ahi te puede el archivo para la descarga a ver si te ayuda...
pipemessi8 comento...
el dia 23/08/2011 a las 15:58

Muy buenas tardes, Tengo 2 inquietudes, cuando utilizo el Navigation Rule por ejemplo... para ir a buscar un producto.. cuando me devuelvo a entrar nuevamente.. queda con todo lo que hizo uno.. nose como decirlo no recarga cada vez que entro. solo la primera vez. entonces debido a eso tengo 2 preguntas. 1. Se puede borrar el cache o lo que guarda la pagina o 2 se puede colocar un metodo que se ejecute apenas se redireccione a ella? Muchas Gracias Espero Respuesta. Andres Felipe Mesa Gomez pipemessi8@hotmail.com

rafa comento...

el dia 26/08/2011 a las 21:27

Que tal pipemessi8, pues si se puede borrar la cache, una de las formas de hacerlo es con el pragma-nocache, investiga por ahi, o bien aqui te dejo una url donde hay n codigo util http://turbomanage.wordpress.com/2006/08/08/disable-browsercaching-in-jsf/ saludos
http://www.compujuy.com.ar/postx.php?id=69 131 / 264

NAVEGACION CON JSF, EJEMPLO 3

15/12/2012

yosi comento...

el dia 29/12/2011 a las 11:46

hola oye sabes si es posible ya hacer eso pero con notaciones en el archivo bean, ya sin tener que hacerlo en el faces-config.xml ???
yosi comento...
el dia 29/12/2011 a las 11:46

hola oye sabes si es posible ya hacer eso pero con notaciones en el archivo bean, ya sin tener que hacerlo en el faces-config.xml ???
santos comento...
el dia 20/03/2012 a las 19:53

excellente amigo, era exactamente lo que nececitaba y muy bien explicado gracias por la informacion
INGRESA TU COMENTARIO

NOMBRE MAIL

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=69

132 / 264

INTEGRAR EN JAVA (METODO DE SIMPSON)

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

INTEGRAR EN JAVA (METODO DE SIMPSON)

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

CATEGORIAS

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

El clculo de rea es unos de los problemas ms frecuentes en Anlisis Matemtico, siempre se trata de calcular el rea que pasa que es cortada por una curva representada por una funcin f(x) y los limites xo y x1, un tpico ejemplo de clculo de area seria el de la siguiente figura:

JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6819) JPA EN NETBEANS CON MYSQL (7667) APLICAR ESTILO CSS EN JSF (9674)

A= area a calcular. X0= lmite inferior. X1= lmite superior. El clculo de esta rea generalmente se resuelve de las siguientes maneras:
Soluciones algebraicas: se obtiene una frmula precisa y exacta para el rea solicitada. Soluciones numricas: se calcula numricamente, mediante un mtodo numrico una estimacin del rea, no es exacta dependiendo del mtodo a utilizar se puede llegar a obtener muy buenos resultados.

Lo ideal sera siempre utilizar las soluciones algebraicas, ya que estas son perfectas, nos dan un resultado exacto, pero hay veces en que la funcin es demasiada compleja que se hace difcil y hasta imposible realizar el clculo algebraico, de tal modo que no queda otra solucin que aplicar mtodos numricos que se aproximen a lo que buscamos. En este post lo que haremos es tratar de explicar el mtodo de Simpson simple y desarrollar un sencillo programita en Java que lo haga por nosotros.

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

Ajax!!

METODO DE SIMPSON, deduccin a partir de la ecuacin de la parbola


Sabemos que la ecuacin de una parbola tiene la siguiente forma
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

Actualidad Informatica!!

Esta parbola delimitada por los limites, uno inferior h y otro superior h, cuya mitad ser 0, tal como se muestra en la siguiente figura

DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479)

CLICK AQUI

http://www.compujuy.com.ar/postx.php?id=70

133 / 264

INTEGRAR EN JAVA (METODO DE SIMPSON)

MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223)

15/12/2012

COMPARTI ESTE SITIO

Interes en gral.!!
Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

Procedemos a integrar dicha parbola entre los limites h y h

.Net!! Redes!!
Map

CONOCE JUJUY!!

Satellite

Hybrid

Reemplazamos los limites tenemos


POSTS MAS VISTOS Tops!!
AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

50 mi Map data 2012 - Terms of Use 100 km

Suprimimos los parntesis obtenemos

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

Simplificamos trminos

23 24 25 26 27 28 29 30 31

Aplicamos algunos artificios matemticos para acomodar la ecuacin, en este caso sacamos factor comn a los dos miembros

Que es nuestra ecuacin que denominaremos ecuacin Ec. 1

http://www.compujuy.com.ar/postx.php?id=70

134 / 264

INTEGRAR EN JAVA (METODO DE SIMPSON)

15/12/2012

Ahora bien consideremos la figura anterior, en la que los lmites que cortan de nuestra curva f(x) coinciden a los puntos de nuestra parbola cortada por Xi, entonces podemos decir:

Entonces para nuestra curva f(x) se puede decir que los valores de f(-h), f(0), f(h) son los siguientes:

Que es lo mismo a decir

Entonces acomodando convenientemente los trminos tenemos tenemos

Miramos la ecuacin Ec.1 , la podemos expresar de la siguiente manera, en este caso descomponemos unos de sus factores:

Ahora vemos que podemos reemplazar Ec.2 y Ec.3 en Ec.4. Observemos los trminos iguales

http://www.compujuy.com.ar/postx.php?id=70

135 / 264

INTEGRAR EN JAVA (METODO DE SIMPSON)

15/12/2012

Lo reemplazamos y obtenemos lo que buscamos

Bien con esta ecuacin obtendremos el rea aproximada de una figura, para comprobar lo anterior haremos un ejemplo simple de un clculo de rea de la siguiente figura

En donde
X0=0 X1=2

El valor de su rea utilizando el clculo algebraico es el siguiente:

Reemplazando los lmites

Ahora utilizamos el mtodo de Simpson-EJEMPLO


http://www.compujuy.com.ar/postx.php?id=70 136 / 264

INTEGRAR EN JAVA (METODO DE SIMPSON)

15/12/2012

En donde el valor para de h para nuestros lmites es igual a

-h=0 h=1 f(x)=x 2


Reemplazamos

Y observamos que nos da igual al clculo algebraico, esto porque la curva de la funcin F(x), es igual a la parbola analizada, pero solo paso en este caso si analizaramos una funcin por ej., una exponencial ya no nos dara una igualdad ya que est entre los limites puede tener picos mnimos o mximos, as como tambin puntos de inflexin. Ahora codifiquemos un poco en JAVA para automatizar esto. Implementamos la siguiente clase. Como siempre utilizamos el Netbeans, nos creamos un proyecto del tipo Aplicacin Java, vamos a Archivo->Proyecto Nuevo y elegimos del tipo Aplicacin Java

Le damos el nombre y terminamos de crear el proyecto

http://www.compujuy.com.ar/postx.php?id=70

137 / 264

INTEGRAR EN JAVA (METODO DE SIMPSON)

15/12/2012

Ahora ya tenemos nuestro proyecto creado, el prximo paso a seguir es incluir nuestra clase Funcion Que la podemos conseguir en este post
Valor de una funcin matemtica en java

Ahora creamos una clase Integral

Le damos el nombre

Ya tenemos nuestra clase ahora simplemente le agregamos el siguiente cdigo


package integral; /** * * @author RAFAEL */ public class Integral { private String h0; private String h1; private String h2; private String y0; private String y1; private String y2; private String area; public Integral() {
}

public String CalcularIntegral(String funcion, String h0, String h2){ this.h0=h0;//inicializamo los limites this.h2=h2; this.h1=(Double.parseDouble(this.h2)/2)+"".trim(); Funcion f=new Funcion(); //calculamos los valores para los y this.y0=f.evaluar(funcion,this.h0); this.y1= ((Double.parseDouble(f.evaluar(funcion,this.h1)))*4)+"".trim(); this.y2=f.evaluar(funcion,this.h2); this.area=((Double.parseDouble(this.h1)/3)* (Double.parseDouble(this.y0)+Double.parseDouble(this.y1)+ Double.parseDouble(this.y2)))+"".trim(); return this.area;
}

public String getArea() { return area;


http://www.compujuy.com.ar/postx.php?id=70 138 / 264

INTEGRAR EN JAVA (METODO DE SIMPSON)

15/12/2012

} }

El rbol del proyecto para nuestro ejemplo queda asi

Ahora estamos en condiciones de probar nuestra clase Integral, para ello lo probaremos desde nuestro Main Incluimos el siguiente cdigo al Main para realizar el ejemplo de este post
package integral; /** * * @author RAFAEL */ public class Main { public static void main(String[] args) { //instanciamos la clase Integral
Integral integ=new Integral();

//llamamos al metodo que nos calcula la integral


integ.CalcularIntegral(" x ^2", "0", "2");

//mostramos el resultado por la salida estandar System.out.println(integ.getArea());


} }

Una vez instanciada la clase llamamos al mtodo integ.CalcularIntegral("x^2", "0", "2"); en donde le pasamos por parmetro la funcin "x^2" con los limites 0 y 2, como lo habamos planteado en el ejemplo Ahora estamos en condiciones de ejecutar nuestro ejemplo

http://www.compujuy.com.ar/postx.php?id=70

139 / 264

INTEGRAR EN JAVA (METODO DE SIMPSON)

15/12/2012

Observamos la salida que es igual a la realizada manualmente en el ejemplo osea 2.66 Ahora lo probamos para una funcin seno, en los limites sobre las cordenadas de las x entre 0 y 1, el cdigo de nuestro Main es
package integral; /** * * @author RAFAEL */ public class Main { public static void main(String[] args) { //instanciamos la clase Integral Integral integ=new Integral(); //llamamos al metodo que nos calcula la integral
integ.CalcularIntegral("sen x", "0", "1");

//mostramos el resultado por la salida estandar System.out.println(integ.getArea());


} }

Lo ejecutamos y la salida es 0.45, recordemos que esta expresada en RADIANES Bueno esto es todo, es un ejemplo sencillo de cmo tener una muy buena aproximacin de un calculo de una integral definida, en este caso teniendo ayuda de un cdigo java que lo podemos manipular a nuestra conveniencia, especialmente cuando se pide codigo unico para materias como analisis numerico.

ROSE comento... mari comento...


Muy bueno, gracias

el dia 01/12/2010 a las 14:03

thanks by your source code, has served me well..


el dia 09/01/2011 a las 16:09

gearbox comento...

el dia 07/06/2011 a las 09:54

Excelente, no tengo palabras para describir el apuro del que me ha sacado este codigo, no obstante tengo una duda: estoy compilando con netbeans y resulta que el comando "Funcion" me lo marca rojo, y no compila el programa como consecuencia. A que puede ser debido?
http://www.compujuy.com.ar/postx.php?id=70 140 / 264

INTEGRAR EN JAVA (METODO DE SIMPSON)

15/12/2012

Por lo dems excelente aporte,


rafa comento...
el dia 07/06/2011 a las 13:37

Q tal gearbox, seguramente el projecto que creaste esta corriendo por defecto con el jdk 5, debes configurarlo para que corra con jdk 6,
isaac comento...
el dia 08/06/2011 a las 17:22

Ers DIOSSSS!! BROO!!


davif comento...
el dia 31/07/2011 a las 14:28

oie men no funca tu programa tambn me sale mas la clase funcion en ls arraylist ya lo corregui pero no mas no
josue comento...
el dia 31/10/2011 a las 16:43

no me funcion tu programa :S
jhon comento...
el dia 28/11/2011 a las 16:29

es el programita mas impresionates que visto asta ahora al usarintegrales..!!! me ahorrastes un monton de tiempo..!! pero eso solo te vota la respuesta tambien se puede graficar creo yop..!! pero nada de todos modos es muy buen el algoritmo k te plantesastes ..!!! asta el momento el mejor que eh visto..!! almendra comento...
el dia 26/02/2012 a las 20:10

excelente, muchsmas graxiasss.


cesar comento...
el dia 05/03/2012 a las 11:32

me parse un buen codigo pero tengo un problema lo ejecuto y no me muestra nada como se quedara en un ciclo infinito
Christian comento...
el dia 02/04/2012 a las 02:09

a mi tambn parece q se me quedara en un ciclio infinito o aparece este error javax.script.ScriptException: sun.org.mozilla.javascript.internal.EvaluatorException: syntax error (<Unknown source>#1) in <Unknown source> at line number 1
HACK comento...
el dia 14/07/2012 a las 18:46

graxias ,, me as salvado ..
daniel comento...
el dia 18/09/2012 a las 16:28

gracias exelente aporte peroo no me sirve el programa devido a que me falta la clase Funcion que usted esta utlizando disculpeme me la podria facilitar :) gracias :)
rafa comento...
el dia 18/09/2012 a las 20:59

Que tal Daniel, la clase funcion esta en este post http://compujuy.com.ar/postx.php?id=67

http://www.compujuy.com.ar/postx.php?id=70

141 / 264

INTEGRAR EN JAVA (METODO DE SIMPSON)

15/12/2012

Saludos
Luis comento...
el dia 01/11/2012 a las 10:31

cabron tu programa esta mal popr que publicas cagadas atte Luis Rioja Flores
Ishmael comento...
el dia 09/12/2012 a las 11:02

Muchas gracias brother, te comento que el programa ejecuta pero no muestra ni error, ni resultado... que puede ser?? Saludos
INGRESA TU COMENTARIO

NOMBRE MAIL

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=70

142 / 264

CARGAR TABLA (DATATABLE) JSF

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

CARGAR TABLA (DATATABLE) JSF

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

Ahora continuando con los ejemplos Web JSF, veremos como utilizar el componente datatable de JSF de manera sencilla y no tan complicada. En primer lugar debemos tomar en cuenta que nos basamos en los siguientes posts para un mayor entendimiento:
HOLA MUNDO WEB CON JSF (JAVA) HOLA MUNDO WEB (2) CON JSF (JAVA) NAVEGACION CON JSF, EJEMPLO 3

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

Llenaremos la tabla de forma estatica, es decir con datos que permanecen declarados en una clase, en este caso en un bean. Creamos nuestra clase beans de nombre Persona
1. 2. 3. 4. 5. 6.

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6819) JPA EN NETBEANS CON MYSQL (7667) APLICAR ESTILO CSS EN JSF (9674)

public class Persona { private String apellido; private String nombre; private String direccion; public Persona(String apellido, String nombre, String direccion)
{

7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. }

this.apellido = apellido; this.nombre = nombre; this.direccion = direccion;


}

public String getApellido() { return apellido;


}

public void setApellido(String apellido) { this.apellido = apellido;


}

public String getDireccion() { return direccion;


}

public void setDireccion(String direccion) { this.direccion = direccion;


}

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

public String getNombre() { return nombre;


}

public void setNombre(String nombre) { this.nombre = nombre;


}

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796)

En el Netbeans quedaria asi

http://www.compujuy.com.ar/postx.php?id=72

143 / 264

CARGAR TABLA (DATATABLE) JSF

15/12/2012

AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223) CLICK AQUI

COMPARTI ESTE SITIO

Interes en gral.!!
Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

.Net!!

CONOCE JUJUY!!

Bien ahora en nuestra clase Beans, creada en los post anteriores, incluiremos las siguientes lneas
1. public class Beans { 2. private Persona[] persona= new Persona[]{ 3. new Persona("Tolaba", "Fabiola", "Paso de Jama"), 4. new Persona("Ramos", "Rafael", "Guemes"), 5. new Persona("Ortega", "Ariel", "Ledesma"), 6. new Persona("Nina", "Juan", "Sta. Barbara")}; 7. 8. public Beans() { 9. } 10. 11. public Persona[] getPersona() { 12. return persona; 13. } 14. 15. public void setPersona(Persona[] persona) { 16. this.persona = persona; 17. } 18. 19. 20. }

Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

Map

Satellite

Hybrid

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

En imagen quedaria asi la clase Beans

Observamos que en la clase Beans creamos una propiedad persona del tipo array, la cual la inicializamos con unos determinados nombres fijos en la clase, osea estaticos.
http://www.compujuy.com.ar/postx.php?id=72 144 / 264

CARGAR TABLA (DATATABLE) JSF la clase, osea estaticos.

15/12/2012

Lo siguiente a realizar es modificar nuestro index.xhtml, consideramos que ya esta configurado nuestra clase Beans en el facesconfig.xml referenciada como clase (PARA MAS INFORMACION VER LOS POSTS ANTERIORES SOBRE ESTE TEMA) con las siguientes lneas:
1. 2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3. <html xmlns="http://www.w3.org/1999/xhtml" 4. xmlns:f="http://java.sun.com/jsf/core" 5. xmlns:h="http://java.sun.com/jsf/html"> 6. <h:head> 7. <title>Facelet Title</title> 8. </h:head> 9. <h:body> 10. <h:dataTable value="#{clase.persona}" var="per"> 11. <h:column> 12. <f:facet name="header"> 13. <h:outputText value="NOMBRE"/> 14. </f:facet> 15. <h:outputText value="#{per.nombre}"/> 16. </h:column> 17. <h:column> 18. <f:facet name="header"> 19. <h:outputText value="APELLIDO"/> 20. </f:facet> 21. <h:outputText value="#{per.apellido}"/> 22. </h:column> 23. <h:column> 24. <f:facet name="header"> 25. <h:outputText value="DIRECCION"/> 26. </f:facet> 27. <h:outputText value="#{per.direccion}"/> 28. </h:column> 29. </h:dataTable> 30. </h:body> 31. </html>

en imagenes quedaria asi

Observamos la en primer nivel el tag <h:dataTable></h:dataTable>, que es la etiqueta padre para dibujar una tabla en jsf, luego aparece el tag <h:column></h:column> que nos dibuja las columnas a representar dentro de la tabla. Dentro de el tag <h:column></h:column> nos encontramos con los tags: <f:facet></f:facet> que es para representar encabezados y pies de columna, en este caso un encabezado, el titulo de nuestra columna, que esta contenida en un tag <h:outputText/>, en su propiedad value. <h:outputText value="#{bean.propiedad}"/> nos da el valor que tendr cada fila en cada columna, en este caso tenemos la el la clase Beans, referenciada como clase en el facesconfig.xml, con la propiedad persona El rbol del proyecto, para en caso de netbeans nos queda de la siguiente
http://www.compujuy.com.ar/postx.php?id=72 145 / 264

CARGAR TABLA (DATATABLE) JSF El rbol del proyecto, para

en caso de netbeans nos queda de la siguiente

15/12/2012

manera

Habiendo hecho todo esto, podemos proceder a ejecutar el proyecto, el resultado si todo lo hicimos bien es el siguiente

Bien esto es todo por ahora, en el proximo post llenaremos el data table pero de manera dinamica en la cual los datos lo obtendremos de una base de datos MySql.Hasta pronto..

FELI comento... gilbertto comento...

el dia 24/11/2010 a las 12:59

Muy bueno rafa, era lo q no entendia muy bien, Saludos


el dia 14/12/2010 a las 11:13

hola, me gustara que pusieras un ejemplo as de sencillo, pero utilizando un List o ArrayList para agregar dinmicamente los nombres. gracias XD

rafa comento...

el dia 23/12/2010 a las 18:06

Que tal gilbertto, ahi puse otro ejemplo, utilizando un ArrayList para el cargado de un datatable, esper que te sirva. cargar datatable dinamicamente

ana comento...
HOLA, GRACIAS POR LOS TUTOS...

el dia 29/01/2011 a las 08:33

Alvaro comento...

el dia 22/08/2012 a las 13:09

excelente!
http://www.compujuy.com.ar/postx.php?id=72 146 / 264

CARGAR TABLA (DATATABLE) JSF

15/12/2012

INGRESA TU COMENTARIO

NOMBRE MAIL

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=72

147 / 264

CARGAR TABLA JSF (DATATABLE) CON ARRAYLIST, EN FORMA DINAMICA

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

CARGAR TABLA JSF (DATATABLE) CON ARRAYLIST, EN FORMA DINAMICA

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

Atendiendo a varios pedidos de amigos, hoy haremos otro post sobre jsf, en este caso llenaremos un datatable jsf dinmicamente a travez de un ArrayList, en donde en una pagina index.xhtml tedremos una tabla datatable y los campos de entrada inputtext, en los cuales introduciremos los datos a llenar en nuestra tabla.A continuacin les presento una imagen del resultado final que obtendremos.

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6819) JPA EN NETBEANS CON MYSQL (7667) APLICAR ESTILO CSS EN JSF (9674)

Para tener un mayor entendimiento podemos revisar los siguientes posts:


1. hola mundo 2con JSF 2. hola mundo con JSF 2 3. navegacion con JSF

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

Bien ahora empezamos, como siempre como ide utilizaremos Netbeans, en este caso la versin 6.8, sobre un entorno Windows. En primer lugar nos creamos un proyecto, yo lo llame AplicacionWebJSF

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223) CLICK AQUI

COMPARTI ESTE SITIO

Elegimos el servidor
http://www.compujuy.com.ar/postx.php?id=79

Interes en gral.!!
148 / 264

CARGAR TABLA JSF (DATATABLE) CON ARRAYLIST, EN FORMA DINAMICA

Interes en gral.!!
Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

15/12/2012

FEEDS RSS

.Net!! Redes!!
Map

CONOCE JUJUY!!

Satellite

Hybrid

Y por ultimo para la creacin del proyecto elegimos en framework, en este caso Java Server Faces

POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Bien ya tenemos el proyecto ahora, crearemos nuestro primer Beans que lo llamaremos Persona, este beans es simplemente una clase Java, que estar ubicada en el paquete por defecto de nuestro proyecto

Nuestra clase persona es un beans que cuenta con sus propiedades nombre, apellido y direccin con sus correspondientes metodos accesores (get y set), tiene el siguiente cdigo
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.

public class Persona { private String nombre; private String apellido; private String direccion; public Persona() {
}

public Persona(String nombre, String apellido, String direccion)


{

this.nombre = nombre; this.apellido = apellido; this.direccion = direccion;


}

public String getApellido() {


149 / 264

http://www.compujuy.com.ar/postx.php?id=79

CARGAR TABLA JSF (DATATABLE) CON ARRAYLIST, EN FORMA DINAMICA

15/12/2012

17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. }

return apellido;
}

public void setApellido(String apellido) { this.apellido = apellido;


}

public String getDireccion() { return direccion;


}

public void setDireccion(String direccion) { this.direccion = direccion;


}

public String getNombre() { return nombre;


}

public void setNombre(String nombre) { this.nombre = nombre;


}

Ya tenemos la clase persona, ahora crearemos otra clase BackBeans que la llamaremos Lista, esta ser la encargada de trabajar de tras de nuestro index.xhtml, ser la clase asociada a nuestra pagina, creamos la clase de la misma manera que la clase Persona que tambin estar ubicada en el paquete por defecto, la clase lista contiene el siguiente codigo
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47.

import java.util.ArrayList; public class Lista { private String txtNombre; private String txtApellido; private String txtDireccion; private String txtDireccion3; private ArrayList<Persona> lista= new ArrayList<Persona>(){}; private Persona persona; public Lista() {
}

public void cargarLista(){ persona= new Persona(txtNombre, txtApellido, txtDireccion); this.lista.add(persona);


}

public String getTxtDireccion3() { return txtDireccion3;


}

public void setTxtDireccion3(String txtDireccion3) { this.txtDireccion3 = txtDireccion3;


}

public ArrayList<Persona> getLista() { return lista;


}

public void setLista(ArrayList<Persona> lista) { this.lista = lista;


}

public String getTxtApellido() { return txtApellido;


}

public void setTxtApellido(String txtApellido) { this.txtApellido = txtApellido;


}

public String getTxtDireccion() { return txtDireccion;


}

public void setTxtDireccion(String txtDireccion) { this.txtDireccion = txtDireccion;


}

public String getTxtNombre() { return txtNombre;


}

public void setTxtNombre(String txtNombre) { this.txtNombre = txtNombre;


} }

En esta clase contamos con las siguientes propiedades


txtnombre, esta propiedad estar asociada al inputtext de la pagina index.xhtml, en donde se introduce el nombre. txtapellido, esta propiedad estar asociada al inputtext de la pagina index.xhtml, en donde se introduce el apellido. txtdireccion, esta propiedad estar asociada al inputtext de la pagina index.xhtml, en donde se introduce el direccion. lista, que es un ArrayList con la estructura de la clase Persona.

Por otro lado tenemos sus correspondientes mtodos accesores y un


http://www.compujuy.com.ar/postx.php?id=79 150 / 264

CARGAR TABLA JSFtenemos sus correspondientes mtodos accesores Por otro lado (DATATABLE) CON ARRAYLIST, EN FORMA DINAMICA

y un mtodo llamado cargarLista, que es el mtodo de capturar cuando se haga click en el botn y cargar a la lista un objeto Persona. Ahora crearemos el archivo de configuracin facesconfig.xml sobre el directorio WEB-XML

15/12/2012

Nuestro facesconfig.xml contiene las siguientes lneas


1. 2. <?xml version='1.0' encoding='UTF-8'?> 3. <faces-config version="2.0" 4. xmlns="http://java.sun.com/xml/ns/javaee" 5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 6. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"> 7. <managed-bean> 8. <managed-bean-class>Lista</managed-bean-class> 9. <managed-bean-name>lista</managed-bean-name> 10. <managed-bean-scope>session</managed-bean-scope> 11. </managed-bean> 12. </faces-config>

En este configuramos la clase BackBeans para que pueda ser asociada a nuestro index.xhtml. Por ultimo modificaremos nuestro index.xhtml con las siguientes lneas
1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2. <html xmlns="http://www.w3.org/1999/xhtml" 3. xmlns:h="http://java.sun.com/jsf/html" 4. xmlns:f="http://java.sun.com/jsf/core"> 5. <h:head> 6. <title>Ejemplo JSF</title> 7. </h:head> 8. <h:body> 9. <h:outputText value="#{lista.txtDireccion3}"></h:outputText> 10. <h:dataTable value="#{lista.lista}" var="lis"> 11. <h:column> 12. <f:facet name="header"> 13. <h:outputText value="NOMBRE"/> 14. </f:facet> 15. <h:outputText value="#{lis.nombre}"/> 16. </h:column> 17. <h:column> 18. <f:facet name="header"> 19. <h:outputText value="APELLIDO"/> 20. </f:facet> 21. <h:outputText value="#{lis.apellido}"/> 22. </h:column> 23. <h:column> 24. <f:facet name="header"> 25. <h:outputText value="DIRECCION"/> 26. </f:facet> 27. <h:outputText value="#{lis.direccion}"/> 28. </h:column> 29. </h:dataTable> 30. <br></br> 31. <h:form> 32. <h:outputLabel for="nombre"> Nombre </h:outputLabel> 33. <h:inputText id="nombre" value="#{lista.txtNombre}"></h:inputText><br></br> 34. <h:outputLabel for="apellido"> Apellido </h:outputLabel> 35. <h:inputText id="apellido" value="#{lista.txtApellido}"></h:inputText><br></br> 36. <h:outputLabel for="direccion"> Direccion </h:outputLabel> 37. <h:inputText id="direccion" value="#{lista.txtDireccion}"></h:inputText><br></br> 38. <h:commandButton value="Agregar" action="#{lista.cargarLista}"></h:commandButton> 39. </h:form> 40. </h:body> 41. </html>

En este archivo solamente creamos la tabla, los campos de entrada y el boton de envio. Bien el rbol de nuestro proyecto queda de la siguiente manera
http://www.compujuy.com.ar/postx.php?id=79 151 / 264

CARGARel rbol de nuestroCON ARRAYLIST, EN FORMA DINAMICA Bien TABLA JSF (DATATABLE) proyecto queda de la siguiente manera

15/12/2012

Ahora tansolamente, si es que todo lo hicimos bien nos queda ejecutar nuestro proyecto web: En la siguiente imagen observamos que se ejecuto bien

Ahora llenamos los campos de entrada

Le damos click en agregar

http://www.compujuy.com.ar/postx.php?id=79

152 / 264

CARGAR TABLA JSF (DATATABLE) CON ARRAYLIST, EN FORMA DINAMICA

15/12/2012

Obtenemos buenos resultados, pues se agrego a la tabla Agregamos otro

Bien con esto hemos realizado el llenado de un datatable de manera dinmica, ose interactuando con el servidor y la pagina actualizndose, espero que haya servido de ayuda a alguien. A continuacin pongo para descarga el proyecto, si te sirvi solo comenta!!! Descarga proyecto.rar

cel_12 comento... fuck comento... PEDRO comento...


Excelante!! gracias

el dia 29/12/2010 a las 22:36

sencillo, justo lo que buscaba, desde el DF Mexico gracias


el dia 31/12/2010 a las 20:26

PIOLA, INTERESANTE PAGINA Y BUEN EJEMPLO PARA EMPEZAR.


el dia 27/01/2011 a las 09:16

koki comento...
es lo unico q sabes??? estudia mas

el dia 31/01/2011 a las 15:06

rafa comento...

el dia 01/02/2011 a las 08:35

jaja claro que ser mucho +++++, estos ejemplos son introductorios, la idea es ir de a poco y no hacer posts enormes..
http://www.compujuy.com.ar/postx.php?id=79 153 / 264

CARGAR TABLA JSF (DATATABLE) CON ARRAYLIST, EN FORMA DINAMICA

15/12/2012

Wilfredo comento...

el dia 14/02/2011 a las 14:19

Hola, Muchas gracias por el ejemplo, quedo sin palabras. Saludos desde Venezuela!!!

GRAY comento...

el dia 21/02/2011 a las 21:34

Gracias..me sirvio mucho este ejemplo.. micaela comento...


el dia 11/04/2011 a las 21:35

hola osy de rosario esto ne sirbio mucho haun qu no intiendo un poc grasias soy micaela Raul comento...
el dia 21/04/2011 a las 21:32

Excelente tutorial, completo, facil, al grano y muy didactico. Saludos


Holger comento...
el dia 26/04/2011 a las 21:49

Gracias man... desde Ecuador se te agradece y xitos en tu carrera.... rafa comento...


el dia 27/04/2011 a las 14:04

Gracias a todos por sus comentarios, sus comentarios son la fuerza para seguir posteando.
Victor comento...
el dia 10/05/2011 a las 22:35

Esta bien interesante y entendible, espero que sigan dejando asi como este bueno tutoriales y en espaol. desde BOLIVIA GRACIAS
ediroman comento...
el dia 03/07/2011 a las 22:53

buenazo esta la explicacion y de mucha ayuda desde Ecuador un saludo


LAURAcomento...
el dia 14/07/2011 a las 13:22

ya tu sabesXXXXX
Luis comento...
el dia 14/07/2011 a las 15:31

buenisimo tu aporte nme ha ayudado mucho.


LIZ comento...
el dia 28/10/2011 a las 00:02

Gracias por su aporte Dios le pague sigan apoyando a los que empezamos en esto hace que uno no desmaye de los sueos de aprender y adquirir mas conocimiento.
mao comento...
el dia 16/11/2011 a las 11:30

En el bean no hay necesidad de volver a declarar las variables de la clase persona, porque o si no para que esa clase, teniendo que definir nuevamentes sus atributos en el bean. Revise eso
Calvin comento...
el dia 22/11/2011 a las 07:57

Excelente ejemplo. No sabes cuanto busqu esta info. Ahora si...puedo continuar con mi aplicacion. Gracias!!
shiko comento...
el dia 27/01/2012 a las 14:09

Muy bueno el pequeo ejercicio rafa esta excelente para los que estamos comenzando con JSF. Si no es mucha molestia y tienes algn buen manual, ojala me lo pudieses compartir...
http://www.compujuy.com.ar/postx.php?id=79 154 / 264

CARGAR TABLA JSF (DATATABLE) CON ARRAYLIST, EN FORMA DINAMICA

15/12/2012

edison comento...

el dia 12/02/2012 a las 23:37

Muy buen aporte, gracias, no se si de alguna manera me podrias ayudar con un ejemplo para crear una aplicacion para el ingreso de notas, es decir ingresar las notas en una tabla y guardarlas en una base de datos, Gracias de antemano
INGRESA TU COMENTARIO

NOMBRE MAIL

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=79

155 / 264

SELECCIONAR FILA EN TABLA DATATABLE JSF

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

SELECCIONAR FILA EN TABLA DATATABLE JSF

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

En este post continuaremos con el ejemplo anterior de JSF, pero a diferencia del post anterior, aadiremos a la tabla un enlace para que tengamos la posibilidad de seleccionar una determinada fila de la tabla datatable JSF y mostrar los datos seleccionados en cajas de texto JSF. En primer lugar modificaremos nuestro bean lista, luego nuestra vista index.xhtml. Para estar mas al tanto de nuestros ejemplos JSF podemos visitar el ultimo post realizado:
CARGAR TABLA JSF (DATATABLE) CON ARRAYLIST, EN FORMA DINAMICA

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

Bien empecemos a nuestra clase bean lista que queda de la siguiente manera:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50.

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6819) JPA EN NETBEANS CON MYSQL (7667) APLICAR ESTILO CSS EN JSF (9674)

import java.util.ArrayList; import javax.faces.component.html.HtmlDataTable; public class Lista { private String txtNombre; private String txtApellido; private String txtDireccion; private ArrayList<Persona> lista= new ArrayList<Persona>(){}; private Persona persona; private HtmlDataTable tabla; public Lista() {
}

public void cargarLista(){ persona= new Persona(txtNombre, txtApellido, txtDireccion); this.lista.add(persona);


}

public void seleccionLista(){


persona=(Persona) tabla.getRowData(); this.txtApellido=persona.getApellido(); this.txtNombre=persona.getNombre(); this.txtDireccion=persona.getDireccion(); }

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

public HtmlDataTable getTabla() { return tabla;


}

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

public void setTabla(HtmlDataTable tabla) { this.tabla = tabla;


}

public ArrayList<Persona> getLista() { return lista;


}

public void setLista(ArrayList<Persona> lista) { this.lista = lista;


}

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223) CLICK AQUI

public String getTxtApellido() { return txtApellido;


}

public void setTxtApellido(String txtApellido) { this.txtApellido = txtApellido;


}

public String getTxtDireccion() { return txtDireccion;


}

COMPARTI ESTE SITIO

public void setTxtDireccion(String txtDireccion) { this.txtDireccion = txtDireccion;


}

Interes en gral.!!
156 / 264

http://www.compujuy.com.ar/postx.php?id=81

SELECCIONAR FILA EN TABLA DATATABLE JSF

15/12/2012

51. 52. 53. 54. 55. 56. 57. }

public String getTxtNombre() { return txtNombre;


}

public void setTxtNombre(String txtNombre) { this.txtNombre = txtNombre;


}

Esta clase tiene de nuevo,a diferencia del anterior post (CARGAR TABLA JSF (DATATABLE) CON ARRAYLIST, EN FORMA DINAMICA) : La propiedad tabla del tipo HtmlDataTable, con esta propiedad haremos un binding (enlace) con la tabla datatable JSF del index.xhtml, es decir a travez de esta propiedad podremos obtener datos de la tabla y comportamientos de la misma. El mtodo seleccionLista(), este mtodo ser el encargado de atrapar la fila seleccionada, esto lo hace atravez del metodo getRowData() de la propiedad tabla, la cual nos devuelve un objeto, que lo casteamos al de tipo Persona, luego mostramos la fila seleccionada en los mismos cajas de texto inputText, en los cual realizamos la entrada de alguna fila (fcilmente se los podra poner en otros diferentes, pero para este ejemplo lo haremos asi). Esas son todas la modificaciones a la clase lista, ahora procederemos a la modificacin del index.xhtml, para agregar una columna en la cual se hara una seleccin de una determinada fila. Nuestro index.xhtml es el contiene las siguientes lneas
1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2. <html xmlns="http://www.w3.org/1999/xhtml" 3. xmlns:h="http://java.sun.com/jsf/html" 4. xmlns:f="http://java.sun.com/jsf/core"> 5. <h:head> 6. <title>Ejemplo JSF</title> 7. </h:head> 8. <h:body> 9. <h:form> 10. <h:dataTable value="#{lista.lista}" binding="#{lista.tabla}" var="lis"> 11. <h:column> 12. <f:facet name="header"> 13. <h:outputText value="NOMBRE"/> 14. </f:facet> 15. <h:outputText value="#{lis.nombre}"/> 16. </h:column> 17. <h:column> 18. <f:facet name="header"> 19. <h:outputText value="APELLIDO"/> 20. </f:facet> 21. <h:outputText value="#{lis.apellido}"/> 22. </h:column> 23. <h:column> 24. <f:facet name="header"> 25. <h:outputText value="DIRECCION"/> 26. </f:facet> 27. <h:outputText value="#{lis.direccion}"/> 28. </h:column> 29. <h:column> 30. <f:facet name="header"> 31. <h:outputText value="SELECCIONAR"/> 32. </f:facet> 33. <h:commandLink action="#{lista.seleccionLista}"> 34. SELECCION 35. </h:commandLink> 36. </h:column> 37. </h:dataTable> 38. </h:form> 39. <br></br> 40. <h:form> 41. <h:outputLabel for="nombre"> Nombre </h:outputLabel> 42. <h:inputText id="nombre" value="#{lista.txtNombre}"></h:inputText><br></br> 43. <h:outputLabel for="apellido"> Apellido </h:outputLabel> 44. <h:inputText id="apellido" value="#{lista.txtApellido}"></h:inputText><br></br> 45. <h:outputLabel for="direccion"> Direccion </h:outputLabel> 46. <h:inputText id="direccion" value="#{lista.txtDireccion}"></h:inputText><br></br> 47. <h:commandButton value="Agregar" action="#{lista.cargarLista}"></h:commandButton> 48. </h:form> 49. </h:body> 50. </html>

Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

Map

Satellite

Hybrid

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Lo que aqui agregamos es una etiqueta <h:commandLink> (tambin podra ser un botn) que es un enlace JSF (<a> en html), el cual en el evento action de la misma esta apuntando al mtodo seleccionLista() del nuestra clase lista, para que esta se ejecute y muestre la fila seleccionada en los inputtext. Y nos no olvidamos que tambin en el tag <h:dataTable> agregamos el
http://www.compujuy.com.ar/postx.php?id=81 157 / 264

SELECCIONAR FILA EN TABLA DATATABLE JSFen el tag Y nos no olvidamos que tambin

<h:dataTable> agregamos el evento binding que esta asociado a la propiedad tabla del tipo HtmlDataTable de la clase lista, atravez de esta la asociamos a la clase backbean. Tambin encerramos al <h:dataTable> en etiquetas <h:form>, para que se pueda enviar datos hacia el servidor. Bien eso es todo luego tenemos el faceconfig.xml que no se lo modifica (respecto al ejemplo anterior) y que es el siguiente:
1. <?xml version='1.0' encoding='UTF-8'?> 2. <!-- =========== FULL CONFIGURATION FILE

15/12/2012

================================== -->
3. <faces-config version="2.0" 4. xmlns="http://java.sun.com/xml/ns/javaee" 5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 6. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"> 7. <managed-bean> 8. <managed-bean-class>Lista</managed-bean-class> 9. <managed-bean-name>lista</managed-bean-name> 10. <managed-bean-scope>session</managed-bean-scope> 11. </managed-bean> 12. </faces-config>

La clase Persona tal cual estaba en el ejemplo anterior, con las siguientes lneas:
1. 2. 3. 4. 5. 6. 7. 8. 9.

public class Persona { private String nombre; private String apellido; private String direccion; public Persona() {
}

public Persona(String nombre, String apellido, String direccion)


{

10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. }

this.nombre = nombre; this.apellido = apellido; this.direccion = direccion;


}

public String getApellido() { return apellido;


}

public void setApellido(String apellido) { this.apellido = apellido;


}

public String getDireccion() { return direccion;


}

public void setDireccion(String direccion) { this.direccion = direccion;


}

public String getNombre() { return nombre;


}

public void setNombre(String nombre) { this.nombre = nombre;


}

Bien el rbol del proyecto queda como sigue

http://www.compujuy.com.ar/postx.php?id=81

158 / 264

SELECCIONAR FILA EN TABLA DATATABLE JSF

15/12/2012

Ya estamos en condiciones de ejecutar el proyecto

Agregamos un par de registros

Observamos que aparece un enlace para hacer la seleccin Realizamos una seleccin y tiene que aparecer en los campos de entrada como lo muestra la imagen

http://www.compujuy.com.ar/postx.php?id=81

159 / 264

SELECCIONAR FILA EN TABLA DATATABLE JSF

15/12/2012

Bien vemos que funciona el ejemplo, es una de las maneras ms sencillas de realizar una seleccin del una fila en una tabla JSF, si desean adquirir el proyecto con el codigo para Netbeans solo tienen que comentar y lo

subire a la brevedad. Descargar proyecto

Trial comento... Jaime comento...

el dia 20/01/2011 a las 17:36

Hola, buen ejemplo, estaba buscando algo igual, gracias


el dia 20/01/2011 a las 22:44

excelentes tutoriales para la compresion de programacion con jsf gracia

rafael_ortega comento...

el dia 07/02/2011 a las 22:21

buen tutorial, estaba estancado porque no habia encontrado en jsf como hacer una datatable seleccionable. habia visto otra solucin con radio buttons pero es ms larga

Monica comento...

el dia 15/02/2011 a las 11:43

ESTE TUTOTIAL ESTA SUPER BUENO.. ENVIAMELO POR FAVOR NECESITO HACER UN EJEMPLO PARECIDO A TUYO ...GRACIAS

rafa comento... Lei comento...


http://www.compujuy.com.ar/postx.php?id=81

el dia 15/02/2011 a las 12:38

Proyecto subido Monica, espero que sea de tu ayuda.. saludos


el dia 03/03/2011 a las 21:59

160 / 264

SELECCIONAR FILA EN TABLA DATATABLE JSF

15/12/2012

muy bueno-- gracias por el tutorial eric comento...


el dia 16/04/2011 a las 13:01

la verdad si esta bueno el ejemplo... gracias me sirvio de mucho.... Saludos!!!


richy comento...
el dia 02/05/2011 a las 21:30

gracias por tu ayuda este tuto esa bueno gracias


Hipolito comento...
el dia 25/05/2011 a las 14:34

Muy buen tutorial estoy siguiendo todos y me estan sirviendo para enteder y aprender JFS
DonVidela comento...
el dia 23/09/2011 a las 14:30

Muy til, me costo un poco adaptarlo pero es problema de como esta hecho mi prototipo, muchas gracias por tu tutorial.

Dani comento...

el dia 20/10/2011 a las 10:21

Hola, en el ejemplo se ve todo muy claro pero me descargo el ejemplo, lo compilo, lo ejecuto y la tabla no funciona correctamente. Siempre agregas una fila, es decir, sobreescribe la primera siempre... No se que puede fallar. Lo que si que uso es la libreria JSF 2.1 pero no creo que sea el problema, no? Alguien sabe el porque? Gracias.
jose comento...
el dia 16/12/2011 a las 11:01

y de donde te descargaste la imagen


HENRY comento...
el dia 03/02/2012 a las 12:14

Muchas gracias por el tutorial, exelente me ayudo mucho en un proyecto que estoy desarrollando
carlos comento...
el dia 27/03/2012 a las 22:18

Excelente ejemplo, gracias


Henry comento...
el dia 18/04/2012 a las 13:09

Muchas gracias por tui aporte, me sirvio bastante. Una consulta adicional, yo soy nuevo en java y tambien faces, pero como puedo hacer para pasar datos de un datatable que esta dentro de un jsp pero que la informacion de la celda se vaya hacia otro jsp, dentro del otro jsp hay inputtextbox. Te agradezco anticipadamente tu aporte Henry
Maris comento...
el dia 21/05/2012 a las 22:54

Muy buen trabajo, ayuda bastante Muchisimas gracias... :)

http://www.compujuy.com.ar/postx.php?id=81

161 / 264

SELECCIONAR FILA EN TABLA DATATABLE JSF

15/12/2012

Maris comento...

el dia 21/05/2012 a las 22:54

Muy buen trabajo, ayuda bastante Muchisimas gracias... :)


davidxf comento...
el dia 17/06/2012 a las 20:17

Parcero directamente desde el eje cafetero gracias me fue de bastante ayuda


Jgarcia comento...
el dia 25/06/2012 a las 10:44

Sencillo y muy ilustrativo. Lo intente correr pero no funciono. Pero ya es una base. Gracias!!
fardul comento...
el dia 09/10/2012 a las 16:03

Hola primero quiero felicitarte esta muy bueno el post, gracias por tu tiempo para ensear un poco de todo lo que tienes. Tambien me gustaria saber si tienes uno parecido pero donde se manejen base de datos la verdad eh estado trabajando con oracle 10g, JSF, NetBeans algo muy parecido pero no eh podido listar muy bien... Espero me puedas colaborar muchas gracias de nuevo...
kike comento...
el dia 02/11/2012 a las 00:58

Como adaptarias esto usando una base de datos? Soy un noob xD


ariel comento...
el dia 25/11/2012 a las 11:26

hola gracias le hago algunas modificaciones y listo para adaptar para mi trabajo
Gustavo comento...
el dia 27/11/2012 a las 15:56

Muy buen trabajo, se me aclaro muchas cosas que estube investigando y no entendia.... con este ejemplo siento haber dado un salto.......GRACIAS ES UN ALIENTO PARA SEGUIRME SUPERANDO
INGRESA TU COMENTARIO

NOMBRE MAIL

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

http://www.compujuy.com.ar/postx.php?id=81

162 / 264

SELECCIONAR FILA EN TABLA DATATABLE JSF

15/12/2012

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=81

163 / 264

MODIFICAR Y ELIMINAR FILAS DE UN TABLA DATATABLE JSF

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

MODIFICAR Y ELIMINAR FILAS DE UN TABLA DATATABLE JSF

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

Luego de unas pequeas vacaciones retornamos a los posts, en esta ocasin continuaremos con el post anterior sobre JSF, en la cual seleccionbamos una fila de un datatable jsf y tales datos lo mostrbamos en campos de texto inputtext jsf, una vez seleccionados podremos modificar o eliminar tales datos y luego reflejar los cambios en la tabla datatable jsf. Para estar al tanto de este simple ejemplo podemos revisar el post anterior
SELECCIONAR FILA EN TABLA DATATABLE JSF

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

En el post anterior tenamos nuestra clase java llamada lista, lo cual es nuestro backbean que trabaja con nuestro index.xhtml, en esta clase seencuentran los mtodos necesarios para agregar una fila a nuestra tabla o bien seeccionarla, ahora agregaremos 2 metodos mas para poder eliminar y modificar una fila de la tabla datatable jsf. A continuacin tenemos el cdigo de nuestra clase lista.
1. import java.util.ArrayList; 2. import javax.faces.component.html.HtmlDataTable; 3. 4. public class Lista { 5. private String txtNombre; 6. private String txtApellido; 7. private String txtDireccion; 8. private ArrayList<Persona> lista= new ArrayList<Persona>(){}; 9. private Persona persona; 10. private int index; 11. private HtmlDataTable tabla; 12. public Lista() { 13. persona= new Persona(); 14. } 15. public void cargarLista(){ 16. persona= new Persona(txtNombre, txtApellido, txtDireccion); 17. this.lista.add(persona);

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6819) JPA EN NETBEANS CON MYSQL (7667) APLICAR ESTILO CSS EN JSF (9674)

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

18.
19. }

20. public void seleccionLista(){


21.

22.
23.

24.
25.

persona=(Persona) tabla.getRowData(); this.index=tabla.getRowIndex(); this.txtApellido=persona.getApellido(); this.txtNombre=persona.getNombre(); this.txtDireccion=persona.getDireccion(); }

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

26.

27. public void eliminarLista(){ 28. this.lista.remove(persona); 29. } 30. public void modificarLista(){ 31. persona.setNombre(this.txtNombre); 32. persona.setApellido(this.txtApellido); 33. persona.setDireccion(this.txtDireccion); 34. try{ 35. this.lista.set(index, persona); 36. }catch(Exception e){ 37. System.out.println(e); 38. } 39. } 40. public HtmlDataTable getTabla() { 41. return tabla; 42. } 43. 44. public void setTabla(HtmlDataTable tabla) { 45. this.tabla = tabla; 46. } 47.
http://www.compujuy.com.ar/postx.php?id=82

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223) CLICK AQUI

COMPARTI ESTE SITIO

Interes en gral.!!
164 / 264

MODIFICAR Y ELIMINAR FILAS DE UN TABLA DATATABLE JSF

15/12/2012

48.
49.

public ArrayList<Persona> getLista() { return lista;


}

50.
51.

52.
53.

public void setLista(ArrayList<Persona> lista) { this.lista = lista;


}

54.
55.

public String getTxtApellido() { return txtApellido;


}

56.
57.

58.
59.

public void setTxtApellido(String txtApellido) { this.txtApellido = txtApellido;


}

60.
61.

public String getTxtDireccion() { return txtDireccion;


}

62.
63.

64.
65.

public void setTxtDireccion(String txtDireccion) { this.txtDireccion = txtDireccion;


}

Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

66.
67.

public String getTxtNombre() { return txtNombre;


}

Map

Satellite

Hybrid

68.
69.

70.
71.

public void setTxtNombre(String txtNombre) { this.txtNombre = txtNombre;


}

72. }

En esta clase se encuentran los dos nuevos mtodos


1. public void eliminarLista(){ 2. this.lista.remove(persona); 3. } 4. public void modificarLista(){ 5. persona.setNombre(this.txtNombre); 6. persona.setApellido(this.txtApellido); 7. persona.setDireccion(this.txtDireccion); 8. try{ 9. this.lista.set(index, persona); 10. }catch(Exception e){ 11. System.out.println(e); 12. } 13. }

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

En el mtodo eliminarLista() solamente utilizamos el mtodo remove del ArrayList (del tipo persona) lista, para eliminar un objeto persona. En el mtodo modificarLista(), seteamos las propiedades del objeto persona con los valores introducidos en los campos de texto, luego utilizamos el mtodo set del ArrayList para modificar un objetos de la lista, al mtodo set de lista le debemos pasar el ndice del objeto a modificar (todo esto encerrado en un try-cath para atrapar excepciones en un caso de puntero nulo), en nuestro caso este ndice se llama index, que lo modificamos en el mtodo seleccionLista(), atraves del mtodo getRowIndex(). Ahora modificaremos nuestro index.xhtml, en la cual le agregaremos un botn que nos permitir modificar una fila seleccionada, a continuacin el cdigo
1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2. <html xmlns="http://www.w3.org/1999/xhtml" 3. xmlns:h="http://java.sun.com/jsf/html" 4. xmlns:f="http://java.sun.com/jsf/core"> 5. <h:head> 6. <title>Ejemplo JSF</title> 7. </h:head> 8. <h:body> 9. <h:form> 10. <h:dataTable value="#{lista.lista}" binding="#{lista.tabla}" var="lis"> 11. <h:column> 12. <f:facet name="header"> 13. <h:outputText value="NOMBRE"/> 14. </f:facet> 15. <h:outputText value="#{lis.nombre}"/> 16. </h:column> 17. <h:column> 18. <f:facet name="header"> 19. <h:outputText value="APELLIDO"/> 20. </f:facet> 21. <h:outputText value="#{lis.apellido}"/> 22. </h:column> 23. <h:column> 24. <f:facet name="header"> 25. <h:outputText value="DIRECCION"/> 26. </f:facet> 27. <h:outputText value="#{lis.direccion}"/> 28. </h:column> 29. <h:column> 30. <f:facet name="header">
http://www.compujuy.com.ar/postx.php?id=82

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

165 / 264

MODIFICAR Y ELIMINAR FILAS DE UN TABLA DATATABLE JSF

15/12/2012

31.

32.
33.

34.
35.

36.
37.

38.
39.

40.
41.

42.
43.

44.
45.

46.
47.

48.
49.

50.
51.

52.

<h:outputText value="SELECCIONAR"/> </f:facet> <h:commandLink action="#{lista.seleccionLista}"> SELECCION </h:commandLink> </h:column> </h:dataTable> </h:form> <br></br> <h:form> <h:outputLabel for="nombre"> Nombre </h:outputLabel> <h:inputText id="nombre" value="#{lista.txtNombre}"></h:inputText><br></br> <h:outputLabel for="apellido"> Apellido </h:outputLabel> <h:inputText id="apellido" value="#{lista.txtApellido}"></h:inputText><br></br> <h:outputLabel for="direccion"> Direccion </h:outputLabel> <h:inputText id="direccion" value="#{lista.txtDireccion}"></h:inputText><br></br> <h:commandButton value="Agregar" action="#{lista.cargarLista}"></h:commandButton> <h:commandButton value="Modificar" action="#{lista.modificarLista}"></h:commandButton> <h:commandButton value="Eliminar" action="#{lista.eliminarLista}"></h:commandButton> </h:form> </h:body> </html>

Aqui le agregamos la siguiente linea


1. <h:commandButton value="Modificar" action="#{lista.modificarLista}"></h:commandButton>

Que es nuestro boton, con el evento action apuntando al metodo modificarLista() de la clase lista. Nuestro facesconfig.xml no tiene modificacin y sigue de la siguiente manera
1. <?xml version='1.0' encoding='UTF-8'?>

2. <!-- =========== FULL CONFIGURATION FILE ================================== -->


3. <faces-config version="2.0" 4. xmlns="http://java.sun.com/xml/ns/javaee" 5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 6. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"> 7. <managed-bean> 8. <managed-bean-class>Lista</managed-bean-class> 9. <managed-bean-name>lista</managed-bean-name> 10. <managed-bean-scope>session</managed-bean-scope> 11. </managed-bean> 12. </faces-config> 13.

Bien estamos en condiciones de ejecutar nuestro index.xhtml

Vemos que nos muestra nuestro botn para poder modificar. Agregamos registros y seleccionamos uno

http://www.compujuy.com.ar/postx.php?id=82

166 / 264

MODIFICAR Y ELIMINAR FILAS DE UN TABLA DATATABLE JSF

15/12/2012

Modificamos los campos de entrada y pulsamos sobre modificar y observamos que se produce la modificacin

Ahora seleccionamos otro y pulsamos en eliminar y dicha fila se elimina.

http://www.compujuy.com.ar/postx.php?id=82

167 / 264

MODIFICAR Y ELIMINAR FILAS DE UN TABLA DATATABLE JSF

15/12/2012

Bueno eso es todo por este sencillo post, disculpen si hay errores, hasta pronto

fabricio comento...

el dia 16/02/2011 a las 19:25

Buenaso mi estimado amigo, esto me sirvi mucho, desde varios meses ando buscando algo as, Por favor haz esta misma aplicacin pero con conexin a una tabla mysql, seria EXCELENTE...!!

rafa comento...

el dia 19/02/2011 a las 15:41

Que tal Fabricio, esa es la idea tambien, dentro de uns posts haremos lo que esas pidiendo,, saludos

Holger comento...

el dia 26/04/2011 a las 22:29

Gracias man ... me sirve un montn para mi tesisssss......


Holger comento...
el dia 26/04/2011 a las 22:29

Gracias man ... me sirve un montn para mi tesisssss......


rafa comento...
el dia 27/04/2011 a las 14:06

De nada, sus comentarios son la fuerza para seguir posteando.


hipolito comento...
el dia 25/05/2011 a las 14:43

Bueno hasta ahorita todos me han servido y me han salido sin nigun problema, gracias por tu aporte
Liz comento... Otto comento...
el dia 28/10/2011 a las 00:06

Gracias a ti por el aporte !!!!!!!!!mil gracias!!!! sigue adelante.


el dia 15/02/2012 a las 16:30

Muchas gracias por el aporte, he seguido todos los post hasta este y he aprendido mucho, pronto los terminare, me gustaria saber si tienes algun ejemplo de una pagina encabezado detalle con base de datos?

Richard comento...

el dia 10/03/2012 a las 07:01

Mugras gracias por el tuto, ahora tengo un problema. requiero usar paginacion en el h:datatable pero lo que no quiero es valerme de framework's como primefaces, richfaces, etc. tengo limitaciones y no me permiten usar este tipo de componentes enriquecidos. agradeceria su colaboracion
nemesis comento...
el dia 17/05/2012 a las 10:11

bues post me podrias pasar tu codigo por favor sq stoy realizando un proyecto xfaz me urge..............
khriz comento...
el dia 30/05/2012 a las 00:43

No hay link de descarga???? por favor, al email :( only-khriz@hotmail.com


http://www.compujuy.com.ar/postx.php?id=82 168 / 264

MODIFICAR Y ELIMINAR FILAS DE UN TABLA DATATABLE JSF only-khriz@hotmail.com

15/12/2012

https://www.facebook.com/OnlyKhriZ199
KHRIZ comento...
el dia 30/05/2012 a las 00:53

PERO NO SE GUARDA EN UNA BD :s CIERRO LA VENTANA Y NO SE GUARDA NADA :| ESE ES EL PROBLEMA DE TRABAJAR CON ARRAYLIST
INGRESA TU COMENTARIO

NOMBRE MAIL

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=82

169 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

Que tal.. continuamos con los ejemplos JSF, en esta ocacion seguiremos trabajando nuestro ejemplos anteriores, que consiste en un datatable en la cual tenemos la posibilidad de agregar , eliminar y modificar filas de la tabal datatable JSF. En esta ocasin validaremos la entrada, realizaremos la correspondiente conversin y luego la validacin de los datos que sern insertados en la tabla. En primer lugar explicaremos brevemente como se implementa la conversin y validacin en JSF (recopilacin de ebooks y tutos de internet).

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

Conversion Validacion JSF diferencias.


La conversin es el proceso por el cual JSF convierte los datos ingresados en la vista (como por ejemplo el dato introducido en un inputtext) a los tipos de datos declarados en el backbean. La validacin es el proceso por el cual JSF comprueba que el formato del dato sea el correcto, es decir que si especificamos en la validacin que sea un mail con este formato xxxxx@xxxxxx.xxx, jsf se encarga de revisar de que la validacin declarada se cumpla, caso contrario devolver una excepcin. La conversin, propiamente dicha se encarga de que el tipo de datos de la vista se corresponda con el tipo de datos del backbean, mientras la validacin se encarga de que los datos introducidos en la vista cumplan con el formato especificado ya sean en la vista o en el backbeans (un validador personalizado).
Conversin en JSF ULTIMOS POSTS X CATEGORIA Java!!
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6819) JPA EN NETBEANS CON MYSQL (7667) APLICAR ESTILO CSS EN JSF (9674)

En jsf existen dos maneras para realizar la conversin estndar. La primera consiste en aadir el atributo converter=#{identificadorConversor} al componente. Este atributo es valido para los componentes del tipo UIInput (inputText, inputSecret, inputHidden) y outputText. Por ejemplo <h:inputText converter=#{Integer} value=#{bean.propiedad}/> En JSF estn dispuestos los siguientes conversores
TIPO DE CONVERSOR IDENTIFICADOR DEL CONVERSOR

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

Ajax!!

BigDecimalConverter BigIntegerConverter NumberConverter IntegerConverter ShortConverter ByteConverter CharacterConverter


http://www.compujuy.com.ar/postx.php?id=83

BigDecimal BigInteger Number Integer Short Byte Character


AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223) CLICK AQUI

COMPARTI ESTE SITIO

Interes en gral.!!
170 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

FloatConverter DoubleConverter BooleanConverter DateTimeConverter

Float Double Boolean DateTime

La otra opcin es la de incluir dentro de la etiqueta UIInput la etiqueta perteneciente a jsf core, como por ejemplo <h:inputText id=Fecha value=#{bean.propiedad}> <f:convertDateTime pattern=dd/MM/yyyy/> </h:inputText> Esta etiqueta jsf core presenta mayor flexibilidad ya que permite incluir atributos extras, como en el ejemplo anterior podemos indicar el formato a la fecha. Los atributos disponibles para <f:convertNumber /> son los siguientes NOMBRE DEL ATRIBUTO currencyCode currencySymbol groupingUsed integerOnly locale maxFractionDigits maxIntegerDigits minFractionDigits minIntegerDigits pattern type TIPO String String boolean boolean

Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

Map

Satellite

Hybrid

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

java.util.Locale int Int Int int String String

Los atributos disponibles para <f:convertDateTime/> son los siguientes NOMBRE DEL ATRIBUTO dateStyle parseLocale pattern timeStyle timeZone type
http://www.compujuy.com.ar/postx.php?id=83

TIPO String String o Locale String String String o TimeZone String


171 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

Validacin en jsf

Estos componentes implementan la interfaz javax.faces.validator.Validator, que contiene un nico mtodo validate(). A continuacin un ejemplo de cmo se implemetaria una validacin estndar en jsf <h:inputText "> <f:validateLength maximum="50" /> </h:inputText> En el ejemplo anterior validamos que la longitud de la cadena ingresada no sea mayor a 50 caracteres. En jsf tiene los siguientes validadores estndares que a continuacin se detallan en la tabla siguiente: CLASE DE TAG JSF VALIDADOR

ATRIBUTOS DESCRIPCIN

DoubleRangeValidator

validateDoubleRange minimum,maximum

Validaqueel valor del componenteseamayor queun mnimoy mayor queunmximo. Estevalor debeser tipofloat

LengthValidator

validateLength

minimum,maximum

Validaquelalongituddel valor del componenteestentreun mnimoy unmximo

LongRangeValidator

validateLongRange

minimum,maximum

Validaqueel valor del componenteseamayor queun mnimoy mayor queunmximo. Estevalor debeser tipoentero

Otra forma de validar en jsf, es mediante un validador personalizado, para ellos debemos hacer lo siguiente: Crear un mtodo de la siguiente manera
1. public void validaMail(FacesContext fc, UIComponent uic, Object o) {

2. //validamos o}
3.

donde aqui solo utilizamos el Object o, que es el valor que queremos validar. Bien hasta aqu una breve explicacin de lo que usaremos en este post (por supuesto que hay mas por saber, pero con esto nos basta por ahora). Para seguir al ritmo de cmo empezamos podemos visitar el ltimos post propuesto
MODIFICAR Y ELIMINAR FILAS DE UN TABLA DATATABLE JSF (97)

En primer lugar aadiremos a nuestra clase Persona nuevos atributos. Vamos a suponer que nuestro bean Persona es un empleado de una empresa (lo podramos cambiar a Persona por Empleado pero como el ejemplo ya empez as , lo dejaremos tal cual esta ), agregamos estas propiedades con el objeto de poder realizar validaciones diferentes. Teniamos NOMBRE, APELLIDO Y DIRECCION, ahora agregaremos
FECHA DE NACIMIENTO SECTOR DE LA EMPRESA SUELDO BASICO

A conitnuacion muestro como queda nuestra clase Persona


1. public class Persona { 2. private String nombre; 3. private String apellido; 4. private String direccion; 5. private String mail; 6. private String fechaNacimiento; 7. private int sectorEmpresa; 8. private double sueldoBasico; 9. public Persona() { 10. } 11. 12. public Persona(String nombre, String apellido, String direccion, String mail, String fechaNacimiento, int sectorEmpresa, double
http://www.compujuy.com.ar/postx.php?id=83 172 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF. String mail, String fechaNacimiento, int sectorEmpresa,

double

15/12/2012

13.

14.
15.

16.
17.

18.
19.

20.
21.

sueldoBasico) { this.nombre = nombre; this.apellido = apellido; this.direccion = direccion; this.mail = mail; this.fechaNacimiento = fechaNacimiento; this.sectorEmpresa = sectorEmpresa; this.sueldoBasico = sueldoBasico; }

22.
23.

24.
25.

public String getApellido() { return apellido;


}

26.
27.

28.
29.

public void setApellido(String apellido) { this.apellido = apellido;


}

30.
31.

32.
33.

public String getDireccion() { return direccion;


}

34.
35.

36.
37.

public void setDireccion(String direccion) { this.direccion = direccion;


}

38.
39.

40.
41.

public String getNombre() { return nombre;


}

42.
43.

44.
45.

public void setNombre(String nombre) { this.nombre = nombre;


}

46.
47.

48.
49.

public double getSueldoBasico() { return sueldoBasico;


}

50.
51.

52.
53.

public void setSueldoBasico(double sueldoBasico) { this.sueldoBasico = sueldoBasico;


}

54.
55.

56.
57.

public String getFechaNacimiento() { return fechaNacimiento;


}

58.
59.

60.
61.

public void setFechaNacimiento(String fechaNacimiento) { this.fechaNacimiento = fechaNacimiento;


}

62.
63.

64.
65.

public int getSectorEmpresa() { return sectorEmpresa;


}

66.
67.

68.
69.

public void setSectorEmpresa(int sectorEmpresa) { this.sectorEmpresa = sectorEmpresa;


}

70.
71.

72.
73.

public String getMail() { return mail;


}

74.
75.

76.
77.

public void setMail(String mail) { this.mail = mail;


}

78.
79.

80. }
81.

Ahora modificaremos nuestra clase lista, el cdigo lo mostramos a continuacin


1. import java.text.ParseException; 2. import java.text.SimpleDateFormat; 3. import java.util.ArrayList; 4. import java.util.Date; 5. import javax.faces.application.FacesMessage; 6. import javax.faces.component.UIComponent; 7. import javax.faces.component.html.HtmlDataTable; 8. import javax.faces.context.FacesContext; 9. import javax.faces.validator.ValidatorException;

10.
11. public class Lista { 12. private String txtNombre; 13. private String txtApellido; 14. private String txtDireccion; 15. private String txtMail; 16. private Date txtFechaNac;
http://www.compujuy.com.ar/postx.php?id=83 173 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

17.

18.
19.

20.
21.

22.
23.

24.
25.

private double txtSueldoBas; private int txtSectorEmpr; private ArrayList<Persona> lista= new ArrayList<Persona>(){}; private Persona persona; private int index; private HtmlDataTable tabla; SimpleDateFormat fecha = new SimpleDateFormat("dd/MM/yyyy"); public Lista() { persona= new Persona();

26.

} 27. public void cargarLista(){ 28. persona= new Persona(txtNombre, txtApellido, txtDireccion, txtMail, fecha.format(txtFechaNac), txtSectorEmpr, txtSueldoBas); 29. this.lista.add(persona); 30. } 31. public void seleccionLista() throws ParseException{ 32. persona=(Persona) tabla.getRowData(); 33. this.index=tabla.getRowIndex(); 34. this.txtApellido=persona.getApellido(); 35. this.txtNombre=persona.getNombre(); 36. this.txtDireccion=persona.getDireccion(); 37. this.txtMail=persona.getMail(); 38. this.txtSectorEmpr=persona.getSectorEmpresa(); 39. this.txtSueldoBas=persona.getSueldoBasico(); 40. this.txtFechaNac=fecha.parse(persona.getFechaNacimiento()); 41. } 42. public void eliminarLista(){ 43. this.lista.remove(persona); 44. } 45. public void modificarLista(){ 46. persona.setNombre(this.txtNombre); 47. persona.setApellido(this.txtApellido); 48. persona.setDireccion(this.txtDireccion); 49. try{ 50. this.lista.set(index, persona); 51. }catch(Exception e){ 52. System.out.println(e); 53. } 54. } 55. public HtmlDataTable getTabla() { 56. return tabla; 57. } 58. public void setTabla(HtmlDataTable tabla) { 59. this.tabla = tabla; 60. } 61. 62. public ArrayList<Persona> getLista() { 63. return lista; 64. } 65. public void setLista(ArrayList<Persona> lista) { 66. this.lista = lista; 67. } 68. public String getTxtApellido() { 69. return txtApellido; 70. } 71. public void setTxtApellido(String txtApellido) { 72. this.txtApellido = txtApellido; 73. } 74. public String getTxtDireccion() { 75. return txtDireccion; 76. } 77. public void setTxtDireccion(String txtDireccion) { 78. this.txtDireccion = txtDireccion; 79. } 80. public String getTxtNombre() { 81. return txtNombre; 82. } 83. public void setTxtNombre(String txtNombre) { 84. this.txtNombre = txtNombre; 85. }

86.
87.

88.
89.

public Date getTxtFechaNac() { return txtFechaNac;


}

90.
91.

92.
93.

public void setTxtFechaNac(Date txtFechaNac) { this.txtFechaNac = txtFechaNac;


}

94.
95.

96.
97.

public int getTxtSectorEmpr() { return txtSectorEmpr;


}

98.
99.

100.
101.

public void setTxtSectorEmpr(int txtSectorEmpr) { this.txtSectorEmpr = txtSectorEmpr;


}

102.
103.

104.
105.

public double getTxtSueldoBas() { return txtSueldoBas;


}

106.
107.

108.

public void setTxtSueldoBas(double txtSueldoBas) { this.txtSueldoBas = txtSueldoBas;


174 / 264

http://www.compujuy.com.ar/postx.php?id=83

VALIDACION EN JSF,.VALIDANDO ENTRADA A LA TABLA DATATABLE JSF. 108. this = txtSueldoBas

15/12/2012

109.

110.
111.

112.
113.

public String getTxtMail() { return txtMail;


}

114.
115.

116.
117.

public void setTxtMail(String txtMail) { this.txtMail = txtMail;


}

118.
119.

public void validaMail(FacesContext fc, UIComponent uic, Object


o) {

120.
121.

122.
123.

String strValue = String.valueOf(o); if (!strValue.matches(".+@.+\\.[a-z]+")) { throw new ValidatorException(new FacesMessage("Formato de mail

incorrecto")); } 124. } 125. 126. }

En esta clase agregamos nuevas propiedades a la clase con respecto al ejemplo anterior:
1.

2.
3.

4.

private private private private

String txtMail; Date txtFechaNac; double txtSueldoBas; int txtSectorEmpr;

Las anteriores son las propiedades que se corresponderan con los inputtext de la vista. Tambin agregamos esta propiedad a la clase: SimpleDateFormat fecha = new SimpleDateFormat("dd/MM/yyyy"); Esta propiedad es para darle formato a la fecha. Tambin en el cdigo observamos que tenemos un nuevo mtodo que se llama validaMail, este mtodo es el que ser invocado en la vista cuando se quiera validar un mail, a este mtodo lo podramos incluir en otra clase, pero al ser uno solo en este caso lo dejamos en la clase lista, ustedes podran ponerlo tranquilamente en otra clase para tener un cdigo mas ordenado. Ahora nos ocupamos de nuestra vista index.xhtml. Consecuente de lo anterior agregamos nuevos inputtext a nuestra vista index.xhtml, y tambin columnas a nuestro datatable. A continuacin mostramos como queda nuestro index.xhtml
1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2. <html xmlns="http://www.w3.org/1999/xhtml" 3. xmlns:h="http://java.sun.com/jsf/html" 4. xmlns:f="http://java.sun.com/jsf/core"> 5. <h:head> 6. <title>Ejemplo JSF</title> 7. </h:head> 8. <h:body> 9. <h:form> 10. <h:dataTable id="tabla" value="#{lista.lista}" binding="#{lista.tabla}" var="lis"> 11. <h:column> 12. <f:facet name="header"> 13. <h:outputText value="NOMBRE"/> 14. </f:facet> 15. <h:outputText value="#{lis.nombre}"/> 16. </h:column> 17. <h:column> 18. <f:facet name="header"> 19. <h:outputText value="APELLIDO"/> 20. </f:facet> 21. <h:outputText value="#{lis.apellido}"/> 22. </h:column> 23. <h:column> 24. <f:facet name="header"> 25. <h:outputText value="DIRECCION"/> 26. </f:facet> 27. <h:outputText value="#{lis.direccion}"/> 28. </h:column> 29. <h:column> 30. <f:facet name="header"> 31. <h:outputText value="FECHA NAC."/> 32. </f:facet> 33. <h:outputText value="#{lis.fechaNacimiento}"/> 34. </h:column> 35. <h:column> 36. <f:facet name="header"> 37. <h:outputText value="SUELDO BASICO"/> 38. </f:facet> 39. <h:outputText value="#{lis.sueldoBasico}"/> 40. </h:column> 41. <h:column>
http://www.compujuy.com.ar/postx.php?id=83 175 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

42.
43.

44.
45.

46.
47.

48.
49.

50.
51.

52.
53.

54.
55.

56.
57.

58.
59.

60.
61.

62.
63.

64.
65.

66.
67.

68.
69.

70.
71.

72.
73.

74.
75.

76.
77.

78.
79.

80.
81.

82.
83.

84.
85.

86.
87.

88.
89.

90.
91.

92.
93.

94.
95.

<f:facet name="header"> <h:outputText value="SECTOR EMPRESA"/> </f:facet> <h:outputText value="#{lis.sectorEmpresa}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="MAIL"/> </f:facet> <h:outputText value="#{lis.mail}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="SELECCIONAR"/> </f:facet> <h:commandLink action="#{lista.seleccionLista}"> SELECCION </h:commandLink> </h:column> </h:dataTable> </h:form> <br></br> <h:form> <h:outputLabel for="nombre"> Nombre </h:outputLabel> <h:inputText id="nombre" required="true" value="#{lista.txtNombre}"> <f:validateLength minimum="3" maximum="30"/></h:inputText> <h:message for="nombre"></h:message><br></br> <h:outputLabel for="apellido"> Apellido </h:outputLabel> <h:inputText id="apellido" required="true" value="#{lista.txtApellido}"> <f:validateLength minimum="3" maximum="30"/></h:inputText> <h:message for="apellido"></h:message><br></br> <h:outputLabel for="direccion"> Direccion </h:outputLabel> <h:inputText id="direccion" required="true" value="#{lista.txtDireccion}"> <f:validateLength minimum="3" maximum="50"/></h:inputText> <h:message for="direccion"></h:message><br></br> <h:outputLabel for="mail"> Mail </h:outputLabel> <h:inputText id="mail" required="true" validator="#{lista.validaMail}" value="#{lista.txtMail}" ></h:inputText> <h:message for="mail"></h:message><br></br> <h:outputLabel for="fechaNac"> Fecha de Nac. </h:outputLabel> <h:inputText id="fechaNac" required="true" value="#{lista.txtFechaNac}"> <f:convertDateTime pattern="dd/MM/yyyy"/></h:inputText> <h:message for="fechaNac"></h:message><br></br> <h:outputLabel for="sectorEmpr"> Sector de la Empresa </h:outputLabel> <h:inputText id="sectorEmpr" required="true" value="#{lista.txtSectorEmpr}"> <f:validateLongRange minimum="0" maximum="11"/></h:inputText> <h:message for="sectorEmpr"></h:message><br></br> <h:outputLabel for="sueldoBasico"> Sueldo Basico </h:outputLabel> <h:inputText id="sueldoBasico" required="true" converter="#{Double}" value="#{lista.txtSueldoBas}"> <f:validateDoubleRange minimum="0" maximum="5000"/> </h:inputText> <h:message for="sueldoBasico"></h:message><br></br> <h:commandButton value="Agregar" action="#{lista.cargarLista}"></h:commandButton> <h:commandButton value="Modificar" action="#{lista.modificarLista}"></h:commandButton> <h:commandButton value="Eliminar" action="#{lista.eliminarLista}"></h:commandButton> </h:form> </h:body>

96.
97.

98.
99. </html>

Como se ve en el cdigo de index.xhtml, se agregaron las columnas de la misma manera que las anteriores, lo nuevo que aparece aparece a continuacin:
1. <h:outputLabel for="sueldoBasico"> Sueldo Basico </h:outputLabel> 2. <h:inputText id="sueldoBasico" required="true" converter="#{Double}" value="#{lista.txtSueldoBas}"> 3. <f:validateLongRange minimum="0" maximum="5000"/> </h:inputText> 4. <h:message for="sueldoBasico"></h:message><br></br>

<h:outputLabel/> : esta tag es la etiqueta que nos muestra la descripcion del campo a ingresar, en este caso el atributo for indica que pertenece al campo de id sueldoBasico, y este se dibujara al costado del campo de entrada inputtext sueldoBasico. <h:inputText/> : este tag no es mas que el campo de entrada con los siguientes atributos
Required: en este caso, establecido a true nos indica que el campo es requerido y no tiene que ser nulo, caso contrario nos saltara una excepsion con su correspondiente
http://www.compujuy.com.ar/postx.php?id=83 176 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

mensaje. Converter: este atributo nos indica a que tipo de dato ser convertido para que se corresponda con el tipo de dato java declarado en el atributo value. Value : el valor con el cual se corresponde con una determinada propiedad en el backbean, en este caso el bean lista.

<f:validateLongRange/> : este es el tag que que nos implementa la validacion del dato, en este caso especificamos que del tipo de validacin de rango de un tipo de dato doubl. Este tag tiene los siguientes atributos:
Mnimum: este atributo nos dice cual es el valor minimo que podemos aceptar, en nuestro caso al valor minimo es 0. Mximum = este atributo nos dice cual es el valor mximo que podemos aceptar, en nuestro caso al valor mximo es 5000.

<h:message/> : en esta etiqueta se muestran los mensajes que nos da las excepciones al no cumplirse una validacin o bien al haber un error en la conversin, en este tag se muestran por defecto los mensajes estndares de jsf. De todo esto difiere el campo de entrada fechaNac, en la cual para la conversin utilizamos el tag jsf core <f:convertDateTime pattern="dd/MM/yyyy"/></h:inputText> En este tenemos la posibilidad de especificar mediante el atributo pattern el formato de la fecha. Olvidamos decir que tambin difiere el campo de entrada mail, en el atributo validator, y no incorporamos el validador estndar de jsf core, el valor del atributo validator apunta a un mtodo de la clase lista, en este caso al mtodo validaMail, que es un mtodo personalizado para la validacin. Con esto ya estamos en condiciones de ejecutar nuestro proyecto, iniciamos el servidor y lo ejecutamos

Observamos que se ejecuta, pero vemos que los mensajes que nos muestran, ya sea el de conversin o el de validacin estn en ingles, y necesitamos un mensajes mas personalizado. Para ello vamos a crear un archivo de propiedades: En este caso lo crearemos sobre el paquete predeterminado, click derecho y en nuevo->otro

Elegimos otro y en la zona derecha un archivo de propiedades

http://www.compujuy.com.ar/postx.php?id=83

177 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

Le damos el nombre en este caso error y luego en terminar.

Ya tenemos nuestro archivo de propiedades creado. A continuacin mostramos los distintos mensajes JavaServer Faces estndares que se muestran al usuario debido a errores de conversin y validacin en la capa de presentacin.
UIInput Llave (key) Mensaje estndar Mensaje alternativo

{0}: javax.faces.component.UIInput.CONVERSION Conversion error occurred javax.faces.component.UIInput.REQUIRED Ejemplo:Registrar a un usuario en un sitio Web {0}: Validation Campo Error: Value is obligatorio required {0}: An error occurred when processing your submitted information

javax.faces.component.UIInput.UPDATE

Converter Llave (key) Mensaje estndar {2}: ''{0}'' must be a signed decimal number Mensaje alternativo Valor ''{0}'' tiene que ser un nmero decimal

javax.faces.converter.BigDecimalConverter.DECIMAL

javax.faces.converter.BigIntegerConverter.BIGINTEGER

{2}: ''{0}'' must be a Valor "{0}" number tiene que ser consisting numrico of one or more digits {1}: ''{0}'' must be 'true' or 'false'. {2}: ''{0}'' Valor "{0}" tiene que ser verdadero o falso
178 / 264

javax.faces.converter.BooleanConverter.BOOLEAN

http://www.compujuy.com.ar/postx.php?id=83

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

javax.faces.converter.ByteConverter.BYTE

must be a number between 0 and 255 {1}: ''{0}'' must be a valid character {2}: ''{0}'' could not be understood as a date {2}: ''{0}'' could not be understood as a time {2}: ''{0}'' could not be understood as a date and time

Valor ''{0}'' tiene que ser un nmero entre 0 y 255 Valor ''{0}'' tiene que ser un carctervalido Valor ''{0}'' no se puede interpretar como una fecha Valor ''{0}'' no se puede interpretar como una hora Valor ''{0}'' no se puede interpretar como fecha y hora

javax.faces.converter.CharacterConverter.CHARACTER

javax.faces.converter.DateTimeConverter.DATE

javax.faces.converter.DateTimeConverter.TIME

javax.faces.converter.DateTimeConverter.DATETIME

{1}: A 'pattern' or 'type' javax.faces.converter.DateTimeConverter.PATTERN_TYPE attribute must be specified to convert the value ''{0}'' {2}:''{0}'' must be a Valor "{0}" number tiene que ser consisting numrico of one or more digits {2}:''{0}'' must be convertible to an enum

javax.faces.converter.DoubleConverter.DOUBLE

javax.faces.converter.EnumConverter.ENUM

{1}:''{0}'' must be convertible to an enum javax.faces.converter.EnumConverter.ENUM_NO_CLASS from the enum, but no enum class provided {2}: ''{0}'' must be a number Valor "{0}" consisting tiene que ser of numrico one or more digits {2}:''{0}'' must be a Valor "{0}" number tiene que ser consisting numrico of one or more digits {2}:''{0}'' must be a number Valor "{0}" consisting tiene que ser of numrico one or more digits {2}:''{0}'' could not be understood as a currency value {2}: ''{0}'' could not be understood as a percentage Valor ''{0}'' no se puede interpretar como una moneda

javax.faces.converter.FloatConverter.FLOAT

javax.faces.converter.IntegerConverter.INTEGER Ejemplo:Registrar a un usuario en un sitio Web

javax.faces.converter.LongConverter.LONG

javax.faces.converter.NumberConverter.CURRENCY

javax.faces.converter.NumberConverter.PERCENT

Valor ''{0}'' no se puede interpretar como un porcentaje


179 / 264

http://www.compujuy.com.ar/postx.php?id=83

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

javax.faces.converter.NumberConverter.NUMBER

{2}: ''{0}'' is Valor "{0}" not a tiene que ser number numrico {2}: ''{0}'' is Valor "{0}" no not a es un patrn number numrico pattern {2}: ''{0}'' must be a number Valor "{0}" consisting tiene que ser of numrico one or more digits {1}: Could not convert ''{0}'' to a string

javax.faces.converter.NumberConverter.PATTERN

javax.faces.converter.ShortConverter.SHORT

javax.faces.converter.STRING

Validator Llave (key) Mensaje Mensaje estndar alternativo {1}: Validation Error: Value is greater than allowable maximum of {0} {1}: Validation Error: Value is less than allowable minimum of {0} Longitud mayor que el mximo permitido de {0}

javax.faces.validator.DoubleRangeValidator.MAXIMUM

javax.faces.validator.DoubleRangeValidator.MINIMUM

Longitud menor que el mnimo permitido de {0}

{2}: Validation Error: Specified attribute javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE is not between the expected values of {0} and {1} {0}: Validation Error: Value is not of the correct type {1}: Validation Error: Value is greater than allowable maximum of {0} {1}: Validation Error: Value is less than allowable minimum of {0} {1}: Validation Error: Value is greater than allowable maximum of {0}

Valor no se encuentra entre {0} y {1}

javax.faces.validator.DoubleRangeValidator.TYPE

javax.faces.validator.LengthValidator.MAXIMUM

Longitud mayor que el mximo permitido de {0}

javax.faces.validator.LengthValidator.MINIMUM Ejemplo:Registrar a un usuario en un sitio Web

Longitud menor que el mnimo permitido de {0}

javax.faces.validator.LongRangeValidator.MAXIMUM

Longitud mayor que el mximo permitido de {0}

http://www.compujuy.com.ar/postx.php?id=83

180 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

javax.faces.validator.LongRangeValidator.MINIMUM

{1}: Validation Error Value is less than allowable minimum of {0} {2}: Validation Error: Specified attribute is not between the expected values of {0} and {1} {0}: Validation Error: Value is not of the correct type

Longitud menor que el mnimo permitido de {0}

javax.faces.validator.LongRangeValidator.NOT_IN_RANGE

Valor no se encuentra entre {0} y {1}

javax.faces.validator.LongRangeValidator.TYPE

En el archivo de propiedades indicaremos la clave con su correspondiente valor. Nuestro archivo error.propiertes queda de la siguiente manera
javax.faces.component.UIInput.REQUIRED="Campo obligatorio" javax.faces.validator.DoubleRangeValidator.MAXIMUM = El valor debe ser inferior a "{0}" javax.faces.validator.DoubleRangeValidator.MINIMUM = El valor debe ser superior a "{0}" javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE = El valor no se encuentra en el rango entre {0} y {1}. javax.faces.validator.DoubleRangeValidator.TYPE = El valor no es del tipo correcto javax.faces.validator.LengthValidator.MAXIMUM =El valor debe ser inferior a "{0}" caracteres javax.faces.validator.LengthValidator.MINIMUM = El valor debe ser superior a "{0}" caracteres javax.faces.validator.LongRangeValidator.MAXIMUM = El valor debe ser inferior a ''{0}'' javax.faces.validator.LongRangeValidator.MINIMUM = El valor debe ser superior a ''{0}'' javax.faces.validator.LongRangeValidator.NOT_IN_RANGE = El valor no se encuentra en el rango entre {0} y {1}. javax.faces.validator.LongRangeValidator.TYPE = El valor no es del tipo correcto. javax.faces.converter.DateTimeConverter.DATE = ''{0}'' No es un formato valido de fecha, ejemplo 22/02/1986. javax.faces.converter.DoubleConverter.DOUBLE = ''{0}'' No es un numero decimal vlido. javax.faces.converter.IntegerConverter.INTEGER = ''{0}'' No numero entero valido.

Bien ahora hay qye reflejar ese archivo en nuestro faceconfig.xml, que queda de la siguiente manera
1. <?xml version='1.0' encoding='UTF-8'?>

2. <!-- =========== FULL CONFIGURATION FILE ================================== -->


3. <faces-config version="2.0" 4. xmlns="http://java.sun.com/xml/ns/javaee" 5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 6. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"> 7. <managed-bean> 8. <managed-bean-class>Lista</managed-bean-class> 9. <managed-bean-name>lista</managed-bean-name> 10. <managed-bean-scope>session</managed-bean-scope> 11. </managed-bean>

12. <application> 13. <message-bundle>error</message-bundle> 14. </application>


15. </faces-config>

Las lineas de azul son las nuevas, en ella indicamos que los mensajes estaran en un archivo llamado error que se encuentra en el paquete prederminado Nuestro proyecto de archivos queda de la siguiente manera
http://www.compujuy.com.ar/postx.php?id=83 181 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

Bien ahora ya estamos en condiciones de ejecutar nuevamente nuestro proyecto, con los mensajes de conversin y validacin personalizados. Presionamos el boton agregar sin rellenar ningun campo

Nos muestra el mensaje de campo vacio (required="true") Verificamos una conversion

Insertamos en sector y sueldo letras y nos muestra el mensaje de error personalizado. Verificamos una validacion

http://www.compujuy.com.ar/postx.php?id=83

182 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

En este caso ingresamos un mail invalido, y fecha de nacimiento invalida Bien observamos que todo salio bien, ahora lo completamos de manera correcta y observamos que se agrega a la tabla

Bueno, ya tenemos na tabla en la cual, agregamos, modificamos y eliminamos filas de uan datatablea, ahora tambien validamos los datos antes de porder agregarlos a la tabla. En el proximo post que sera muy pronto le aplicaremos un poco de estilo pra que quede bonita, asi terminamos con este sencillo post, hasta pronto.SI DESEAN EL PROYECTO PUEDE SER SUBIDO SOLO PIDANLO..si les sirvio comenten no cuesta nada

FABRICIO comento...

el dia 20/02/2011 a las 17:42

Perfecto, estoy siguiendo al pie de la letra, todo OK..!! Esperando el siguiente post.....

Mary comento...

el dia 21/02/2011 a las 13:32

Muy buen post, gracias. justo buscaba algo asi


http://www.compujuy.com.ar/postx.php?id=83 183 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

carlos comento...

el dia 16/03/2011 a las 03:04

si puedes subirlo poor favor...es que si me hace falta para un proyecto... gracias...lo estoy corriendo pero me manda este erroor /index.xhtml @77,81 value="#{lista.txtNombre}": Target Unreachable, identifier 'lista' resolved to null
rafa comento...
el dia 16/03/2011 a las 22:22

Q TAL CARLOS, AHI SUBI EL PROYECTO, PERO DEL ULTIMO POST DONDE ESTA INCLUIDO ESTE-- ESPERO QUE TE SIRVA, ESTE ES EL LINK http://www.compujuy.com.ar/postx.php?id=84
Carlos comento...
el dia 17/03/2011 a las 00:44

esta bien muchas gracias ya logre que me corriera la validacion...y esta muy bueno este post...espero que sigas haciendo mas de esto con jsf...por cierto esto no guarda los datos en una base de datos verdad? haber cuando haces un ejemplo asi, que guarde los datos y los elimine de una base datos mysql... pero bueno muchas gracias...excelente saludos desde mexico
rafa comento...
el dia 18/03/2011 a las 20:53

"Pronto se viene un post con datos en una base de datos MySql.... saludos"
Carlos comento...
el dia 10/05/2011 a las 23:28

hola que tal, tengo una pregunta lo que pasa es que quiero guardar un id autoincrement en otra tabla, pero tendria un problema llamado concurrencia, como podria evitar eso. con jpa o mediante un bean normal....podrian ayudarme?
Jekyll comento...
el dia 06/10/2011 a las 14:12

Que ocurre si por ejemplo tengo un boton cancelar que me limpia los campos? como evito que este boton intente validar los campos?
rafa comento...
el dia 06/10/2011 a las 14:48

Que tal Jekyll, pues una maner facil de solucionar es es agregar la propiedad partialSubmit="true" al boton cancelar, pero eso si usando icefaces... en este post esta contemplado algo parecido pero sobre un commandlink ... http://compujuy.com.ar/postx.php?id=88
fabr comento...
el dia 26/10/2011 a las 16:32

muy bueno bastante facil de entender.solo una duda puedo agregar mas de un 'validator'?.
rafa comento...
el dia 26/10/2011 a las 18:47

Que tal Fabr, claro que se puede agregar mas de un validator....


John comento...
http://www.compujuy.com.ar/postx.php?id=83

el dia 28/10/2012 a las 15:56


184 / 264

VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

15/12/2012

Ey hombre, se valora bastante tu apoyo para con los que recin empezamos en este mundo... Te deseo lo mejor y que sigas creciendo en todos los aspectos... Saludos
Gustavo comento...
el dia 27/11/2012 a las 20:34

MUY BUENO!! ES ALGUO TAN NECESARIO Y PERFECTAMENTE EXPLICADO...TODO PARECE TAN FACIL....ESTE EJEMPLO YA LO PROBE EN LAS NUBES PERFECTO!! .....GRACIAS NUEVAMENTE
WATSON comento...
el dia 30/11/2012 a las 18:11

ESTA BUENO EL EJEMPLITO... ME SIRVIO EN ALGUNAS DUDAS QUE TRAIA JEJE... SALUDOS Y GRACIAS!!!
INGRESA TU COMENTARIO

NOMBRE MAIL

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=83

185 / 264

APLICAR ESTILO CSS EN JSF

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

APLICAR ESTILO CSS EN JSF

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

En este nuevo post le daremos estilo a nuestra pagina index.xhtml con cdigo jsf, aprenderemos como crear un archivo css e incluirlo en nuestra pagina. Atraves de lneas css modificaremos el estilo nuestra tabla datatable jsf que estuvimos viendo en ejemplos anteriores, hacindola mas presentable y amigable al usuario. En este post no ensearemos css, tansolamente veremos como crear un archivo css y referenciar componentes jsf. Podemos seguir nuestro ultimo post de ejemplo:
VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

ESTILO CSS EN JSF.

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6819) JPA EN NETBEANS CON MYSQL (7667) APLICAR ESTILO CSS EN JSF (9675)

En jsf el estilo se puede aplicar de dos maneras


Atravez de el atributo style de cualquier tag jsf. Atravez de un archivo css en un archivo diferente. Atravez de el atributo style de cualquier tag jsf.

Todas las etiquetas jsf contienen este atributo, un ejemplo seria el siguiente <h:outputText value="NOMBRE" style="margin: 12px; color: #FFFFFF"/> En donde a la etiqueta outputtext le estamos aplicando estilo atraves de su atributo style, en donde le damos un margen general (superior, inferior derecho e izquierdo) de 12 px y un color hexadecimal. Esta no es la mejor manera de hacerlo, ya que estaramos mezclando el diseo con la vista de los componentes jsf , pero es valido.
Atravez de un archivo css en un archivo diferente.

Esta es la mejor manera de hacerlo, en un archivo diferente en donde estarn todas nuestras directivas css. Todos los componentes jsf cuantan con los siguientes atributos:
Id Styleclass

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

Atraves de estos atributos es posible aplicarles estylo css a todos los componentes jsf. Por ejemplo EN CSS #texto{ color: blue; font-size: 20px; } ETIQUETA JSF <h:outputText id="texto" value="ESTO ES UN TEXTO"></h:outputText> O bien por medio del atributo styleclass EN CSS .clase{ color: blue; font-size: 20px; } ETIQUETA JSF <h:outputText id="texto" value="ESTO ES UN TEXTO"
http://www.compujuy.com.ar/postx.php?id=84

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223) CLICK AQUI

COMPARTI ESTE SITIO

Interes en gral.!!
186 / 264

APLICAR<h:outputText id="texto" ESTILO CSS EN JSF

value="ESTO ES UN TEXTO" styleClass="texto"></h:outputText> Hay que tener en cuenta que el atributo id, solo se lo puede referenciar en css como lo hicimos anteriormente cuando no es hija de otra etiqueta jsf, es decir si tenemos <h:form> <h:outputText id="texto" value="ESTO ES UN TEXTO" styleClass="texto"></h:outputText> </h:form> El atributo id como lo hicimos anteriormente, css no lo referenciara pero si lo hara por el atributo styleclass. Despus de esta sencilla explicacin modificaremos nuestra tabla datatable jsf, para ello primero crearemos un archivo css de la siguiente manera: Crearemos el archivo css en el mismo lugar que el index.xhtml para no tner problemas de path (fcilmente se lo podra hacer en otra carpeta especial para nuestro archivos css, que seria la mejor manera).

15/12/2012

Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

Map

Satellite

Hybrid

50 mi Map data 2012 - Terms of Use 100 km

Le damos el nombre, en este caso estilo.css, en este caso estilo.css

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Y ya tenemos creado nuestro archivo css Ahora incluiremos las siguientes lneas css
1. .tabla{

2.
3.

4.
5.

border: solid 2px #2E2EFE ; border-collapse: collapse; color: #424242; font-weight: bold;

6. }
7. .cabeceraTabla{ 8. color: #FFFFFF; 9. background: #0080FF; 10. padding:5px; 11. } 12. .fila1{ 13. text-align: center; 14. background:#FFFFFF; 15. 16. } 17. .fila2{ 18. text-align: center; 19. background:#EFEFFB; 20. border: solid 2px #2E2EFE; 21. } 22. .msjError{ 23. color: #FF0000; 24. font-weight: bold; 25. margin: 0px 0px 0px 15px; 26. } 27. .form{ 28. border: solid 2px #2E2EFE; 29. width: 800px; 30. padding: 20px; 31. } 32. .label{ 33. width: 300px; 34. } 35. .txtNombre, .txtApellido{ 36. margin-left: 90px; 37. width: 200px;
http://www.compujuy.com.ar/postx.php?id=84 187 / 264

APLICAR ESTILO CSS EN JSF

15/12/2012

38. }
39. .txtDireccion{ 40. margin-left: 83px; 41. width: 250px; 42. } 43. .txtMail{ 44. margin-left: 114px; 45. width: 250px; 46. } 47. .txtSectorEmpr{ 48. margin-left: 11px; 49. width: 20px; 50. } 51. .txtSueldoBas{ 52. margin-left: 54px; 53. width: 50px; 54. } 55. .txtFechaNac{ 56. margin-left: 51px; 57. width: 80px; 58. } 59. .txtNombre, .txtApellido, .txtDireccion, .txtMail, .txtSectorEmpr, .txtSueldoBas, .txtFechaNac{ 60. font: 15px bold; 61. color: #045FB4; 62. } 63. .texto{ 64. color: blue; 65. font-size: 2px; 66. }

Nuestro index.xhtml queda de la siguiente manera


1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2. <html xmlns="http://www.w3.org/1999/xhtml" 3. xmlns:h="http://java.sun.com/jsf/html" 4. xmlns:f="http://java.sun.com/jsf/core" 5. > 6. <h:head> 7. <title>Ejemplo JSF</title> 8. <link href="estilo.css" type="text/css" rel="stylesheet" /> 9. </h:head> 10. <h:body> 11. <h:form> 12. <h:dataTable headerClass="cabeceraTabla" rowClasses="fila1,fila2" styleClass="tabla" id="tabla" value="#{lista.lista}" binding="#{lista.tabla}" var="lis"> 13. <h:column> 14. <f:facet name="header"> 15. <h:outputText value="NOMBRE"/> 16. </f:facet> 17. <h:outputText value="#{lis.nombre}"/> 18. </h:column> 19. <h:column> 20. <f:facet name="header"> 21. <h:outputText value="APELLIDO"/> 22. </f:facet> 23. <h:outputText value="#{lis.apellido}"/> 24. </h:column> 25. <h:column> 26. <f:facet name="header"> 27. <h:outputText value="DIRECCION"/> 28. </f:facet> 29. <h:outputText value="#{lis.direccion}"/> 30. </h:column> 31. <h:column> 32. <f:facet name="header"> 33. <h:outputText value="FECHA NAC."/> 34. </f:facet> 35. <h:outputText value="#{lis.fechaNacimiento}"/> 36. </h:column> 37. <h:column> 38. <f:facet name="header"> 39. <h:outputText value="SUELDO BASICO"/> 40. </f:facet> 41. <h:outputText value="#{lis.sueldoBasico}"/> 42. </h:column> 43. <h:column> 44. <f:facet name="header"> 45. <h:outputText value="SECTOR EMPRESA"/> 46. </f:facet> 47. <h:outputText value="#{lis.sectorEmpresa}"/> 48. </h:column> 49. <h:column> 50. <f:facet name="header"> 51. <h:outputText value="MAIL"/> 52. </f:facet> 53. <h:outputText value="#{lis.mail}"/>
http://www.compujuy.com.ar/postx.php?id=84 188 / 264

APLICAR ESTILO CSS EN JSF

15/12/2012

54.
55.

56.
57.

58.
59.

60.
61.

62.
63.

64.
65.

</h:column> <h:column> <f:facet name="header"> <h:outputText value="SELECCIONAR"/> </f:facet> <h:commandLink action="#{lista.seleccionLista}"> SELECCION </h:commandLink> </h:column> </h:dataTable> </h:form> <br></br> <h:form styleClass="form"> <h:outputLabel styleClass="label" for="nombre"> Nombre </h:outputLabel> <h:inputText styleClass="txtNombre" id="nombre" required="true" value="#{lista.txtNombre}"> <f:validateLength minimum="3" maximum="30"/></h:inputText> <h:message styleClass="msjError" for="nombre"></h:message><br></br> <h:outputLabel for="apellido"> Apellido </h:outputLabel> <h:inputText styleClass="txtApellido" id="apellido" required="true" value="#{lista.txtApellido}"> <f:validateLength minimum="3" maximum="30"/></h:inputText> <h:message styleClass="msjError" for="apellido"></h:message><br></br> <h:outputLabel for="direccion"> Direccion </h:outputLabel> <h:inputText styleClass="txtDireccion" id="direccion" required="true" value="#{lista.txtDireccion}"> <f:validateLength minimum="3" maximum="50"/></h:inputText> <h:message styleClass="msjError" for="direccion"></h:message><br></br> <h:outputLabel for="mail"> Mail </h:outputLabel> <h:inputText styleClass="txtMail" id="mail" required="true" validator="#{lista.validaMail}" value="#{lista.txtMail}" ></h:inputText> <h:message styleClass="msjError" for="mail"></h:message><br></br> <h:outputLabel for="fechaNac"> Fecha de Nac. </h:outputLabel> <h:inputText styleClass="txtFechaNac" id="fechaNac" required="true" value="#{lista.txtFechaNac}"> <f:convertDateTime pattern="dd/MM/yyyy"/></h:inputText> <h:message styleClass="msjError" for="fechaNac"></h:message><br></br> <h:outputLabel for="sectorEmpr"> Sector de la Empresa </h:outputLabel> <h:inputText styleClass="txtSectorEmpr" id="sectorEmpr" required="true" value="#{lista.txtSectorEmpr}"> <f:validateLongRange minimum="0" maximum="11"/></h:inputText> <h:message styleClass="msjError" for="sectorEmpr"></h:message><br></br> <h:outputLabel id="te" for="sueldoBasico"> Sueldo Basico </h:outputLabel> <h:inputText styleClass="txtSueldoBas" id="sueldoBasico" required="true" converter="#{Double}" value="#{lista.txtSueldoBas}"> <f:validateDoubleRange minimum="0" maximum="5000"/> </h:inputText> <h:message styleClass="msjError" for="sueldoBasico"></h:message><br></br><br></br> <h:commandButton value="Agregar" action="#{lista.cargarLista}"></h:commandButton> <h:commandButton value="Modificar" action="#{lista.modificarLista}"></h:commandButton> <h:commandButton value="Eliminar" action="#{lista.eliminarLista}"></h:commandButton> </h:form> </h:body>

66.
67.

68.
69.

70.
71.

72.
73.

74.
75.

76.
77.

78.
79.

80.
81.

82.
83.

84.
85.

86.
87.

88.
89.

90.
91.

92.
93.

94.
95.

96.
97.

98.
99.

100.
101.

102. </html>

Vemos que solamente utilizamos el atributo styleclass de las etiquetas jsf. Tambin podemos observar que para la tabla utilizamos headerClass="cabeceraTabla" : atributo especias del componente datatable para dar estilo a la cabecera de la tabla. rowClasses="fila1,fila2" : atributo especial del componente datatable para dar estilo a las filas de la tabla, tambin existe en los datatable el atributo columnClasses="", para dar estilo a las columnas , footerclass para el pie de la tabla y captionClass="" para dar estilo al titulo. Adems a nuestro index.xhtml incluiremos la referencia a nuestro archivo css, con la siguiente linea (lo ubicamos anteriormente en la misma carpeta que el index.xhtml) <link href="estilo.css" type="text/css" rel="stylesheet" /> Bien esas son todas las modificaciones que haremos para hacer mas presentable nuestra tabla de ejemplo. El arbol de proyecto queda asi
http://www.compujuy.com.ar/postx.php?id=84 189 / 264

APLICAR ESTILO CSS EN JSF

15/12/2012

Ejecutamos el proyecto y el resultado debera ser el siguiente.

Esto es todo por ahora, es sencillo, claro que se puede hacer cosas mejores, solo es cuestin de meterse mas en el tema, tanto en css como en jsf.

Descarga proyecto.rar

Felix comento...

el dia 22/03/2011 a las 21:22

Muy bueno, ahora me imagino que se viene la conexion a la base de datos, saludos desde Mexico
Valdemiro comento...
el dia 28/03/2011 a las 11:55

esta muy util, sin embargo pongo el coment para que me den mi tabla
http://www.compujuy.com.ar/postx.php?id=84 190 / 264

APLICAR ESTILO CSS EN JSF

15/12/2012

Saira comento...

el dia 31/10/2011 a las 17:36

Muy bueno ;) gracias...


Saira comento...
el dia 31/10/2011 a las 17:36

Muy bueno ;) gracias...


JLopez comento...
el dia 14/02/2012 a las 09:50

Buenos articulos, te felicito compadre, nunca pense encontrar un blog tan completo de alguien aqui en jujuy, con esto ahces crecer mucho a la provincia, y gracias por compartir informacion de este tipo, Exitos!!!
hector comento...
el dia 30/09/2012 a las 14:36

gracias, me sirvio bastante...


INGRESA TU COMENTARIO

NOMBRE MAIL

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=84

191 / 264

JPA EN NETBEANS CON MYSQL

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

JPA EN NETBEANS CON MYSQL

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

En este nuevo post lo que haremos es crear una simple base de datos MySql, luego crearemos la unidad de persistencia con JPA(Java Persistence Api ) con la cual, mediante esta podremos realizar el CRUD (create, read, update and delete ) para nuestras tablas de la BD. Realizaremos este ejemplo en concreto con el proposito de poder cargar nuestra tabla datatable JSF, con la tabla Persona que a continuacin crearemos. Para saber como crear una Base de datos MySql podemos visitar el siguiente post
CREACION DE UNA BD MYSQL EN NETBEANS 6.8

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

Suponemos que ya sabemos como crear la base de datos desde el Netbeans (por supuesto que no es necesario que la creemos desde el Netbeans, la podemos hacer desde la lnea de comando del mysql o desde el Xamp o desde cualquier otra aplicacin que nos permita hacerlo). En mi caso mi base de datos se llama Aplicacion . A continuacin ejecutare un script SQL, que nos creara la tabla Persona
1. create table Persona( 2. id int primary key auto_increment, 3. nombre varchar(30), 4. apellido varchar(30), 5. direccion varchar(30), 6. fechaNacimiento varchar(30), 7. sueldoBasico double, 8. sectorEmpresa int, 9. mail varchar(30) 10. ); 11.

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6819) JPA EN NETBEANS CON MYSQL (7668) APLICAR ESTILO CSS EN JSF (9675)

Ejecutamos el script, actualizamos y comprobamos que la tabla Persona se creo.

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

Ahora agregaremos 2 registros con el siguiente escript


1. insert into Persona (nombre, apellido, direccion, fechaNacimiento, sueldoBasico, sectorEmpresa, mail) 2. values('CRISTIAN', 'GERONIMO', 'PALPALA','22/09/86','200.0','1','cristian@yahoo.com.ar'); 3. insert into Persona (nombre, apellido, direccion, fechaNacimiento, sueldoBasico, sectorEmpresa, mail) 4. values('SOLEDAD', 'GIMENEZ', 'ALTO COMEDERO','26/09/84','900.0','5','sole@compujuy.com.ar');

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223) CLICK AQUI

COMPARTI ESTE SITIO

Comprobamos que los registros se agregaron


http://www.compujuy.com.ar/postx.php?id=85

Interes en gral.!!
192 / 264

JPA EN NETBEANS CON MYSQL

15/12/2012

Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

.Net!!

CONOCE JUJUY!!

Bien hasta ahora ya creamos nuestra BD. Ahora procederemos a crear el modulo de persistencia que nos permitir realizar el CRUD. Para mas informacin tambin podemos leer este post
INTRODUCCION A JPA

Redes!! POSTS MAS VISTOS Tops!!

Map

Satellite

Hybrid

En nuestro netbeans elegimos nuevo proyecto y elegimos el tipo de aplicacin Java

AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Le damos el nombre (Persistencia en mi caso) y la ubicacin, lo dems lo dejamos como esta y le damos en terminar

Ya tenemos nuestro proyecto terminado, le damos click derecho sobre el paquete de fuentes->nuevo->Clase Entidad a partir de una Base de Datos

http://www.compujuy.com.ar/postx.php?id=85

193 / 264

JPA EN NETBEANS CON MYSQL

15/12/2012

En conexin a la Base de Datos elegimos la conexin de la base de datos que recin acabamos de crear (Aplicacion), automticamente nos aparece la tabla Persona, la ubicamos sobre el cuadro derecho de tablas seleccionadas y le damos en siguiente.

Antes de dar click en siguiente Crearemos la unidad de persistencia le damos click en donde muestra la imagen.

Nos aparece la siguiente ventana, a el nombre de Unidad de Persistencia lo dejamos tal cual esta, y en Biblioteca de Persistencia elegimos Hibernate y le damos en crear tal cual lo muestra la imagen

Y para finalizar esta parte, dejamo todo como esta y le damos en terminar como lo muestra la siguiente imagen
http://www.compujuy.com.ar/postx.php?id=85 194 / 264

JPA EN NETBEANS CON MYSQL

15/12/2012

Ya tenemos la clase entidad creada, ahora sobre el paquete persistencia le damos click derecho->nuevo y elegimo Clase Controladora JPA de clase Entidad

Ubicamos sobre el cuadro derecho de clases entidad seleccionadas, a la entidad Persona (persistencia.Persona) le damos en siguiente

La ubicacin la dejamos tal cual esta y le damos en terminar

http://www.compujuy.com.ar/postx.php?id=85

195 / 264

JPA EN NETBEANS CON MYSQL

15/12/2012

Antes de continuar deberemos agreagr la Librera que nos permitir trabajar con Mysql en nuestro proyecto, para ello le damos click derecho el Biblietecas y luego elegimos agregar Biblioteca

Buscamos la Librera Driver MySql JDBC y le damos el Aadir Biblioteca

Bien con todo esto ya tenemos configurado nuestro proyecto para poder trabajar con JPA y MySql, El rbol del proyecto nos tiene que haber quedado asi

Ahora probaremos si todo sali bien, para ello abrimos nuestro Main agregamos la siguiente lneas
1. package persistencia;

2.
3. import java.util.ArrayList;

4.
5. public class Main {

6.
7.

8.
9.

public static void main(String[] args) { PersonaJpaController controlador= new PersonaJpaController(); ArrayList<Persona> lista=(ArrayList<Persona>)
controlador.findPersonaEntities(); for (Persona persona : lista) { System.out.println(persona.getApellido()+" "+persona.getNombre()+"\n"); } } }

10.
11.

12.
13.

14.

Lo que hacemos aqu es llamar al mtodo .findPersonaEntities() de la clase PersonaJpaController, que nos deveulve una lista con todos los registros de la BD, y luego con un for lo recorremos y mostramos.
http://www.compujuy.com.ar/postx.php?id=85 196 / 264

JPA EN NETBEANS CON MYSQL registros de la BD, y luego

con un for lo recorremos y mostramos. Acontinuacion la imagen muestra como se ejecuta correctamente.

15/12/2012

Bien espero que les haya salido bien todo, este sencillo ejemplo fue hecho con el propsito de realizar el siguiente post que es el de cargar una tabla JSF a partir de una BD.

marya comento...

el dia 26/08/2011 a las 17:58

hola muy bueno su tutorial pero pofis no tendra un ssitema cuialquiera kiero los codigos si gracias
tomas comento...
el dia 20/09/2011 a las 06:18

Hola, quera saber como es el constructor sin argumentos de tu JpaController ya que el netbeans no me lo crea automaticamente, es decir me crea uno pero con emf como parmetro por lo tanto tengo q crear un emf indicando la unidad de persistencia y demas en el main. Gracias. Saludos.
Dani comento...
el dia 04/11/2011 a las 07:42

Hola, a mi me pasalo mismo, el Netbeans por defecto me crea un constructor con emf de entrada de parmetro... Se supone que el que tienes tu no le pasas ningun parametro de entrada, es correcto? Habra que crear un constructor vacio? Gracias y saludos.
carlos comento...
el dia 08/01/2012 a las 14:08

k tal me parecio interesante el ejemplo , no se si a mi correo cva_1602@hotmail.com me podria enviar un ejemplo asi pero web que justo es lo k estoy necesitando . gracias carlos valdiva
Gustavo comento...
el dia 22/01/2012 a las 01:37

Hola, a mi me paso lo mismo con el Netbeans y el JpaController, lo que hice fue quitar los parametros ya que practicamente no se usan y
http://www.compujuy.com.ar/postx.php?id=85 197 / 264

JPA EN NETBEANS CONlos parametros hice fue quitar MYSQL

ya que practicamente no se usan y agregar en el contructor this.emf = Persistence.createEntityManagerFactory("PersistenciaPU"); de esta manera ya no presenta problemas.
Ricardo comento...
el dia 21/02/2012 a las 18:04

15/12/2012

Muchas gracias por el tutorial, muy entendible. Tengo un problema en esta linea que se encuentra en el metodo main de la clase principal: PersonaJpaController controlador= new PersonaJpaController(); Al parecer esa clase no tiene ningun constructor que se ejecute sin parametros y me pide un EntityManagerFactory. Que puedo hacer? Estoy usando netbeans 7.1 Desde ya, muchas gracias.
Ricardo comento...
el dia 22/02/2012 a las 07:23

Ya lo pude solucionar, les doy la solucin para los que tengan el mismo problema que yo: Simplemente crean un constructor sin parmetros en la clase PersonaJpaController, dentro del constructor escriben la siguiente lnea this.emf = Persistence.createEntityManagerFactory("pruebaPersistenciaPU"); Donde pruebaPersistenciaPU es el nombre de la unidad de persistencia, si no recuerdan el nombre de la unidad de persistencia, lo pueden ver en persistence.xml.
Jefferson comento...
el dia 04/04/2012 a las 09:14

Muy bueno el aporte, te felicito por el tutorial....... no se si me puedes ayudar quiero realizar el mismo tipo de proyecto pero en ves de q me imprima en consola quiero q me imprima el resultado en ventanas... x favor si me puedes ayudar te agradeceria mucho.......
feef comento...
el dia 12/07/2012 a las 13:41

cscscs
feef comento...
el dia 12/07/2012 a las 13:41

cscscs
Wilfo comento...
el dia 21/07/2012 a las 13:40

Muy bueno el tutorial.Aunque me pregunto como puedo obtener el ID del utlima persona ingresada.Tambin me supongo para llamar desde jsp solo agrego la la referncia de la clase y woala...Haber si me conestas lo primero.
wilfo comento...
el dia 21/07/2012 a las 13:42

Muy bueno el tutorial.Aunque me pregunto como puedo obtener el ID del utlima persona ingresada. Disculpa que el otro estaba mal escrito..
Gustavo comento...
el dia 01/12/2012 a las 11:12

De antemano agradeciendote por estos exelentes tutoriales que los vengo siguiendo desde el primero de "HOLA". y para poder continuar necesito de vuestra ayuda que se los agradesco por adelantado.
http://www.compujuy.com.ar/postx.php?id=85 198 / 264

JPA EN NETBEANS CON MYSQL

15/12/2012

Public class Main { 7 PersonaJpaController controlador=new PersonaJpaController(); Segun los comentarios veo que algunos los resolvieron; soy nuevo en esto ; por favor si me puedes decir como quedan los archivos despues de las modificaciones. NetBeans IDE 7.2 guparo@hotmail.com
INGRESA TU COMENTARIO

NOMBRE MAIL

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=85

199 / 264

CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

En este nuevo post, cargaremos nuestra tabla datatable JSF desde una base de datos MySql. Nos basamos en los ejemplos realizados anteriormente, osea cargaremos la tabla y podremos agregar, eliminar o modificar registros desde la pagina index.xhtml, tambin estarn incluidas las validaciones desarrolladas, lo nico que cambia es la fuente de datos, y aqu solamente modificaremos nuestra clase backbean lista de los ejemplos anteriores. Para este ejemplo hacemos uso del ultimo post sobre JSF, en donde incorporamos todo lo aprendido hasta ahora
APLICAR ESTILO CSS EN JSF

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5997) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6820) JPA EN NETBEANS CON MYSQL (7669) APLICAR ESTILO CSS EN JSF (9675)

Tambien hacemos uso de la base de datos creada en MySql


JPA EN NETBEANS CON MYSQL

En primer lugar lo que haremos es agregar a nuestro proyecto web, la aplicacin realizada anteriormente. Lo que hacemos aqu es incorporar a nuestro proyecto web la aplicacin java, y a travs de esto poder utilizar todos los mtodos creados en la aplicacin, podemos decir que estar incorporado al proyecto como una librera aparte. Esto es una ventaja ya que nuestra lgica de persistencia estar bien separada de nuestra vista. Empezamos, le damos click derecho sobre el proyecto y elegimos propiedades

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

Elegimos el tem Libraries, luego le damos click en Add Project

Actualidad Informatica!!

http://www.compujuy.com.ar/postx.php?id=86

200 / 264

CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL

15/12/2012

DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223)

CLICK AQUI

COMPARTI ESTE SITIO

Interes en gral.!!
Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

Buscamos el lugar donde se encuentra nuestra aplicacin java, (en este caso Persistencia es la aplicacion) y le damos click en Agregar al proyecto archivos JAR

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

Map

Satellite

Hybrid

50 mi Map data 2012 - Terms of Use 100 km

Bien en la imagen siguiente observamos que tenemos agregada ya nuestra aplicacin Persistencia, para terminar esta parte le damos click en aceptar

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Ahora nos falta agregar las libreras necesarias para poder utilizar MySql y la de Hibernate con JPA. Para ello le damos click derecho sobre Libraries y elegimos Agregar Biblioteca

http://www.compujuy.com.ar/postx.php?id=86

201 / 264

CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL

15/12/2012

Seleccionamos Driver Mysql JDBC y Hibernate JPA y le damos click en Aadir biblioteca

Nuestra carpeta de Libraries debe quedar como lo muestra la imagen

Con todo esto estamos en condiciones de poder utilizar las clases creadas en la aplicacin Persistencia. A continuacin modificaremos la clase Lista con las siguientes lneas
1. import java.text.ParseException; 2. import java.text.SimpleDateFormat; 3. import java.util.ArrayList; 4. import java.util.Date; 5. import javax.faces.application.FacesMessage; 6. import javax.faces.component.UIComponent; 7. import javax.faces.component.html.HtmlDataTable; 8. import javax.faces.context.FacesContext; 9. import javax.faces.validator.ValidatorException; 10. import persistencia.*; 11. 12. public class Lista { 13. private String txtNombre; 14. private String txtApellido; 15. private String txtDireccion; 16. private String txtMail; 17. private Date txtFechaNac; 18. private double txtSueldoBas; 19. private int txtSectorEmpr; 20. private ArrayList<Persona> lista= new ArrayList<Persona>(){}; 21. private HtmlDataTable tabla; 22. private Persona persona; 23. PersonaJpaController controlador; 24. SimpleDateFormat fecha = new SimpleDateFormat("dd/MM/yyyy"); 25. public Lista() {
http://www.compujuy.com.ar/postx.php?id=86 202 / 264

CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL

15/12/2012

26.
27.

28.
29.

30.
31.

//instanciamos la clase Persona persona= new Persona(); //instanciamos la clase PersonaJpaController controlador= new PersonaJpaController(); //cargamos la tabla
cargarTabla(); }

32.
33.

34.
35.

36.
37.

public void cargarTabla(){ //insertamos al lista, todos los registro devueltos //por el metodo findPersonaEntities del objeto //controlador

lista = (ArrayList<Persona>)controlador.findPersonaEntities(); } 39. public void cargarLista(){

38.

40. //seteamos las propiedades de persona


41. persona.setNombre(txtNombre); 42. persona.setApellido(txtApellido); 43. persona.setDireccion(txtDireccion); 44. persona.setFechaNacimiento(fecha.format(txtFechaNac)); 45. persona.setSectorEmpresa(txtSectorEmpr); 46. persona.setSueldoBasico(txtSueldoBas); 47. persona.setMail(txtMail);

48. //utilizamos el metodo create de controlador 49. //para insertar un nuevo registro 50. controlador.create(persona); 51. //volvemos a cargar la tabla para refrescar 52. cargarTabla();
53. }

54. public void seleccionLista() throws ParseException{


55.

56.
57.

58.
59.

60.
61.

62.
63. }

persona=(Persona) tabla.getRowData(); this.txtApellido=persona.getApellido(); this.txtNombre=persona.getNombre(); this.txtDireccion=persona.getDireccion(); this.txtMail=persona.getMail(); this.txtSectorEmpr=persona.getSectorEmpresa(); this.txtSueldoBas=persona.getSueldoBasico(); this.txtFechaNac=fecha.parse(persona.getFechaNacimiento());

64. public void eliminarLista(){ 65. try{ 66. //utilizamos el metodo destroy de la clase 67. //controlador para eliminar un registro 68. controlador.destroy(persona.getId());
69. }

70.
71.

catch(Exception e){
System.out.println(e); }

72.
73.

//volvemos a cargar la tabla para refrescar


cargarTabla();

74.
75. }

76. public void modificarLista(){ 77. //seteamos las propiedades de persona 78. persona.setNombre(txtNombre);
79. persona.setApellido(txtApellido); 80. persona.setDireccion(txtDireccion); 81. persona.setFechaNacimiento(fecha.format(txtFechaNac)); 82. persona.setSectorEmpresa(txtSectorEmpr); 83. persona.setSueldoBasico(txtSueldoBas); 84. persona.setMail(txtMail); 85. //controlamos las excepciones con try- catch 86. try{ 87. //utilizamos el metodo edit de la clase controlador

88. //para modificar


89. controlador.edit(persona); 90. } 91. catch(Exception e){ 92. System.out.println(e); 93. } 94. } 95. public HtmlDataTable getTabla() { 96. return tabla; 97. } 98. public void setTabla(HtmlDataTable tabla) { 99. this.tabla = tabla; 100. } 101. 102. public ArrayList<Persona> getLista() { 103. return lista; 104. } 105. public void setLista(ArrayList<Persona> lista) { 106. this.lista = lista; 107. } 108. public String getTxtApellido() { 109. return txtApellido; 110. } 111. public void setTxtApellido(String txtApellido) { 112. this.txtApellido = txtApellido; 113. } 114. public String getTxtDireccion() { 115. return txtDireccion; 116. } 117. public void setTxtDireccion(String txtDireccion) {
http://www.compujuy.com.ar/postx.php?id=86 203 / 264

CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL

15/12/2012

118.
119. }

this.txtDireccion = txtDireccion; public String getTxtNombre() { return txtNombre;


}

120.
121.

122.
123.

124.
125.

public void setTxtNombre(String txtNombre) { this.txtNombre = txtNombre;


}

126.
127.

128.
129.

public Date getTxtFechaNac() { return txtFechaNac;


}

130.
131.

132.
133.

public void setTxtFechaNac(Date txtFechaNac) { this.txtFechaNac = txtFechaNac;


}

134.
135.

136.
137.

public int getTxtSectorEmpr() { return txtSectorEmpr;


}

138.
139.

140.
141.

public void setTxtSectorEmpr(int txtSectorEmpr) { this.txtSectorEmpr = txtSectorEmpr;


}

142.
143.

144.
145.

public double getTxtSueldoBas() { return txtSueldoBas;


}

146.
147.

148.
149.

public void setTxtSueldoBas(double txtSueldoBas) { this.txtSueldoBas = txtSueldoBas;


}

150.
151.

152.
153.

public String getTxtMail() { return txtMail;


}

154.
155.

156.
157.

public void setTxtMail(String txtMail) { this.txtMail = txtMail;


}

158.
159.

public void validaMail(FacesContext fc, UIComponent uic, Object


o) {

160.
161.

//convertimos a string
String strValue = String.valueOf(o);

162.
163.

164.
165.

//verificamos el mail por una expresion regular if (!strValue.matches(".+@.+\\.[a-z]+")) { //si noes valido lanzamos una excepsion con un mensaje throw new ValidatorException(new FacesMessage("Formato de mail

incorrecto")); } 167. } 168. }

166.

Las nuevas lneas estn explicadas como comentarios. Los nicos mtodos que modificamos son
cargarLista seleccionLista eliminarLista modificarLista

y tenemos un nuevo mtodo


cargarTabla

Tambin incluimos los imports


import persistencia.*;

Las declaraciones
private Persona persona; private PersonaJpaController controlador;

Y las instancias
persona= new Persona(); controlador= new PersonaJpaController();

Bien eso es todo en cuanto a las modificaciones en nuestro Proyecto WEB JSF, TODOS los dems archivos quedan como estaban (por ahora en este post ja). Si seguiemos todos los pasos tal cual se los redacte (espero no haberme equivocado) ya estamos en condiciones de ejecutar nuestro proyecto. Bien lo ejecutamos y nos tendra que aparecer un ventana similar a la siguiente

http://www.compujuy.com.ar/postx.php?id=86

204 / 264

CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL

15/12/2012

Observamos que la tabla ya esta cargada con 2 registros (que se encuentran en nuestra Base de Datos) Agregamos un registro

Y podemos modificar o eliminar, los cuales se refrescaran en nuestra base de datos MySql

Con este ejemplo tenesmo incorporada todo lo hecho en los anteriores post, como ser la validacin, LO UNICO QUE CAMBIAMOS ES LA FUENTE DE DATOS, QUE EN ESTE CASO ES UNA BASE DE DATOS MYSQL. Bien espero que haya sido de su ayuda y si les sirvi solo tienen que comentar. Como un parte mas les dejos los fuentes de los dos proyectos que utiliza este ultimo post: Proyecto de la persistencia: Persistencia.rar El proyecto Web JSF : WEBJSF
http://www.compujuy.com.ar/postx.php?id=86 205 / 264

CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL

15/12/2012

Recordar que yo utilice Netbeans 6.8 para este proyecto, el JDK6 , la version 2.0 de JSF. , la version V3 de Glassfish, una base de datos Mysql 5.0. puede que tengas problemas a la hora de desplegar el archivos, lo que tienen que hacer es volver a desplegar la aplicacion sobre el servidor que tengan instalado, sino deberian crear un proyecto de nuevo e ir agregando los archivos del proyecto. Saludos

CarlosP comento...

el dia 30/03/2011 a las 18:20

OYE, MUY BUENO GRACIAS, CON ESTO CREO QUE YA TERMINO MI TRABAJO, GRACIAS
FABRICIO comento...
el dia 02/04/2011 a las 16:14

Pefecto, esto es lo que estaba esperando...!, con esto tengo para un buen rato. Felicitaciones por su aporte, que se viene ahora..?
rafa comento...
el dia 06/04/2011 a las 22:37

Q tal Fabricio, gracias, y pronto se vienen post sobre paginacion y como usar otros componentes en jsf como ser el Option List, y luego empezaremos con Ajax en JSF usando algun Framework com ser Icefaces.. saludos
mehdi comento...
el dia 14/04/2011 a las 07:21

hola podeis enviar me este proyecto


rafa comento...
el dia 15/04/2011 a las 14:35

OK medhi en lla vrebedad lo subire en esta pagina. saludos


moreno comento...
el dia 28/04/2011 a las 13:01

Hola buenas muchas gracias por el articulo y me pregunto si puedes mandarme una copia de este proyecto y muhas gracias amigo
rafa comento...
el dia 28/04/2011 a las 22:42

Disculpen la demora, pero prometo que antes del sabado 30-04 estara subido el proyecto mis amigos lectores.. saludos
rafa comento...
el dia 29/04/2011 a las 15:17

Proyecto subido...tener en cuenta los archivos de configuracion.


mike comento...
el dia 06/07/2011 a las 11:50

nice tuto, lo implementare


Rodrigo comento...
el dia 29/02/2012 a las 21:44

Hola Rafa:
http://www.compujuy.com.ar/postx.php?id=86 206 / 264

CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL

15/12/2012

Excelentes tus publicaciones, he ido realizando tus ejemplos de manera exitosa, pero he quedado estancado, en el presente ejemplo me arroja el siguiente error:
No se puede crear la instancia de clase: Lista.

rafa comento...

el dia 29/02/2012 a las 22:00

Eso qui zas sea porq no esta cooriendo el Mysql, o bien cualaquier otro problema con la BD...
MarcoFlores comento...
el dia 25/05/2012 a las 10:08

rafa he seguido e implementado los ejemplos de tus publicaciones, muy ilustrativos, pero el link de Persistencis.rar ya no esta disponible, serias ta amable de mandarlo a mi correo
khriz comento...
el dia 30/05/2012 a las 00:37

Por favor, alguien lo tiene ? y le corre sin problemas T_T ? me lo puede enviar a este email: only-khriz@hotmail.com Desde ya se lo agradesco. https://www.facebook.com/OnlyKhriZ199
Male comento...
el dia 29/06/2012 a las 18:52

Super...!!! lo que estaba buscando :D


Gary comento...
el dia 07/09/2012 a las 19:18

Podrias subir otra vez los archivos porque no los puedo descargar, parece que ya no stan :( porfavor....
Gary comento...
el dia 07/09/2012 a las 19:18

Podrias subir otra vez los archivos porque no los puedo descargar, parece que ya no stan :( porfavor....
haml comento...
el dia 28/09/2012 a las 12:51

talvez pudieras subir algo para trabajar con tablas que en una de sus columnas incorporen checkbox, y al seleccionar varios checkbox hacer alguna operacion con las filas seleccionadas de esa tabla. He probado de todo y no he logrado nada
cjmancor comento...
el dia 30/09/2012 a las 19:48

Ante todo agradezco.. por el POST... , pero no me funciona el link de descarga...


RicardoHH comento...
el dia 11/10/2012 a las 20:07

Estimado se ve muy bueno tu POST, soy nuevo en esto y tienes lo que estoy buscando ... para encaminarme como programador de Java, te agradeceria bastante su puedes subir las fuentes o enviarme a mi direccin, gracias nuevamente y exitos para las personas como tu. Saludos.
daniel comento...
el dia 05/11/2012 a las 23:53

Muy bueno tu Post...disculpa si es que talves me puedes dar habilitando los links para descargar el proyecto de persistencia y el proyecto JSF.. gracias
http://www.compujuy.com.ar/postx.php?id=86 207 / 264

CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL

15/12/2012

INGRESA TU COMENTARIO

NOMBRE MAIL

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=86

208 / 264

CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

Regresamos a los post, en esta ocasin iniciaremos una serie de posts con el uso del framework ICEfaces, ICEfaces es un proyecto open source de ICESoft Tecnologies, este framework principalmente nos facilitara el desarrollo con ajax en aplicaciones RIA con Java basadas en JSF. El framework est pensado de tal manera que se puedan realizar partes Ajax utilizando los tags de ICEFaces o partes no Ajax utilizando los tags JSF de siempre, de tal manera que se pueda utilizar Ajax slo donde interese y slo ah sin condicionar que toda la pgina haya de ser Ajax. Algunas de las caractersticas de Icefaces la vemos a continuacin:
El uso de Ajax es transparente para el programador.El programador en ningn momento inicializa un objeto XMLHttpRequest() de javascripts ni mucho menos, solo debe incluir los tags icefaces. Compatibilidad 100%con los estndares Java y jsf. Las aplicaciones desarrolladas en ICEfaces no necesitan plugins de navegador o applets para ser vistas. Disponibles para Netbeans y Eclipse y dems..

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4671) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5998) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6820) JPA EN NETBEANS CON MYSQL (7669) APLICAR ESTILO CSS EN JSF (9675)

Para mas informacin en podemos visitar la pagina oficial de Icefaces Icefaces A continuacin incluiremos Icefaces en Netbeans 6.9 y crearemos nuestro primer ejemplo. Como primer paso necesitamos descargar el plugin para Netbeans 6.9, ingresamos a la pagina oficial http://www.icefaces.org/main/home/ Necesitamos registrarnos en ella y luego descargamos el plugin para Netbeans 6.9 del correspondiente link, como lo muestra la imagen. Seccin Downloads

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CLICK AQUI

Y luego en la seccin Nebeans descargamos el archivo ICEfaces-2.0.1Netbeans-6.9-modules.zip

COMPARTI ESTE SITIO

http://www.compujuy.com.ar/postx.php?id=87

209 / 264

CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9

15/12/2012

CON 1M (223)

Interes en gral.!!
Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

Una vez descargado descomprimimos el archivo y obtendremos los siguientes archivos con extension *.nmb
org-icefaces-netbeans-modules-lib.nbm org-icefaces-netbeans-modules-web-frameworks.nbm

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

Una vez descargado los archivos abrimos nuestro Netbeans 6.9 y en el menu Herrmientas->Complementos le damos click.

Map

Satellite

Hybrid

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

Se nos abre una ventana y en la pestaa Descargados, le damos click en el botn en Agregar Plugins.. y buscamos los archivos con extensin *.nbm anteriormente descargados.

30 31

Tildamos los 2 archivos y le damos click en instalar. Luego de aceptar trminos de licencia y dems ya tendremos instalado Icefaces en nuestro Netbenas 6.9. Una vez instalado Icefaces creamos un nuevo Proyecto en Netbeans

http://www.compujuy.com.ar/postx.php?id=87

210 / 264

CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9

15/12/2012

Elegimos el tipo de proyecto Web

Le damos un nombre, en mi caso ProyectoIeeFaces

Elegimos el servidor y versin de JDK..

Por ultimo elegimos el framework a utilizar, como es ya sabido utilizaremos Icefaces, lo tildamos (no hace falta tildar JSF),tambien tildamos las opciones a utilizar de Icefaces, en este caso todas
http://www.compujuy.com.ar/postx.php?id=87 211 / 264

CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9

15/12/2012

Listo con esto ya tenemos creado nuestro proyecto Icefaces en Netbeans 6.9. En mi caso se me creo el archivo por defecto welcomeICEfaces.xhtml, le modifico el mensaje de bienvenida y el archivo me quedo asi
1. <?xml version='1.0' encoding='UTF-8' ?>

2. <!-3. Document : welcomeICEfaces 4. Created on : 03/05/2011, 21:23:13 5. Author : RAFAEL 6. -->


7. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 8. <html xmlns="http://www.w3.org/1999/xhtml" 9. xmlns:ui="http://java.sun.com/jsf/facelets" 10. xmlns:f="http://java.sun.com/jsf/core" 11. xmlns:h="http://java.sun.com/jsf/html" 12. xmlns:icecore="http://www.icefaces.org/icefaces/core" 13. xmlns:ace="http://www.icefaces.org/icefaces/components" 14. xmlns:ice="http://www.icesoft.com/icefaces/component" 15. > 16. <h:head> 17. <title>ICEfaces 2</title> 18. <link rel="stylesheet" type="text/css" href="./xmlhttp/css/rime/rime.css"/> 19. </h:head> 20. <h:body styleClass="ice-skin-rime"> 21. <h:form id="form"> 22. <h:outputText value="HOLA ICEFACES, COMPUJUY"/> 23. </h:form> 24. </h:body> 25. <h:outputStylesheet library="org.icefaces.component.skins" name="rime.css" /> 26. </html>

Lo ejecuto y el resultado es el siguiente

Bien de esta manera terminamos de configurar Icefaces en nuestro IDE, y de crear un simple proyecto, para los prximos post ya veremos ejemplos mas completos con el uso de este framework, unos de los ejmplos que haremos es de reemplazar nuestro DataTable JSF creado en nuestros posts anteriores por un DataTable ICEfaces. Hasta pronto..

http://www.compujuy.com.ar/postx.php?id=87

212 / 264

CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9

15/12/2012

FABRICIO comento...

el dia 06/05/2011 a las 17:11

Buen post, como siempre, Felicitaciones y Gracias ..!! Saludos desde AZOGUES - ECUADOR...!!
jj comento...
el dia 08/06/2011 a las 21:12

sipero no sale el modo de diseo. q se debe hacer?


mayte comento...
el dia 14/09/2011 a las 12:23

muy buen aporte espero que puedas mostrar mas ejemplos con imagenes
Emiliano comento...
el dia 24/02/2012 a las 14:58

Bueno comentare par no recibir tabla Muy bueno tu post auque netbeans 7.1 ya viene con IceFaces y Richfaces
Alan comento...
el dia 12/09/2012 a las 11:49

Hola a todos, estoy probando el framework tanto en eclipse como en neatbeans, en ambos me manda el siguiente error:

An Error Occurred:
El ID del componente vff0zw8-retrieve-update ya se ha encontrado en la vista.

.......
java.lang.IllegalStateException: El ID del componente vff0zw8-retrieve-update ya se ha encontrado en la vista. at com.sun.faces.util.Util.checkIdUniqueness(Util.java:821) at com.sun.faces.util.Util.checkIdUniqueness(Util.java:805) at com.sun.faces.application.view.StateManagementStrategyImpl.saveView(StateManagementStrategyImpl.java:144) at com.sun.faces.application.StateManagerImpl.saveView(StateManagerImpl.java:133) at com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:225) a

...... 12/09/2012 10:46:06 AM - Generated by Mojarra/Facelets Si alguien tiene el mismo error y lo pudo corregir agradecer su ayuda. Buen da.

rafa comento...

el dia 12/09/2012 a las 22:26

Que tal eso parece ser, porque hay 2 componentes con el mismo id, revisalo si es asi
INGRESA TU COMENTARIO

NOMBRE MAIL
http://www.compujuy.com.ar/postx.php?id=87 213 / 264

CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9

15/12/2012

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=87

214 / 264

CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4672)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

CATEGORIAS

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

En este post cambiaremos nuestro Datatable jsf estndar a un Datatable de Icefaces, al cambiar nuestro datatable podremos implementar fcilmente la paginacin real, es decir que solo nos traiga los registros de la base de datos que pedimos en la paginacin, ademas tambien estara incluida toda la actualizacion a la correspondiente a la Base de Datos MySql. En post siguientes iremos implementando nuevas funcionalidades ajax al mismo, por ahora realizaremos la conversin a icefaces e incluiremos la paginacin. Nos basamos en el siguiente post
CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL

JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2135) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4672) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5998) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6820) JPA EN NETBEANS CON MYSQL (7669) APLICAR ESTILO CSS EN JSF (9675)

Y tambin en el ultimo
CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (448)

A continuacin listaremos nuevamente los archivos necesarios para este post. En primer lugar tenemos la clase Lista, ya explicada en los posts anteriores.
1. import com.icesoft.faces.component.ext.HtmlDataTable; 2. import com.icesoft.faces.component.ext.HtmlInputText; 3. import java.text.ParseException; 4. import java.text.SimpleDateFormat; 5. import java.util.ArrayList; 6. import java.util.Date; 7. import javax.faces.application.FacesMessage; 8. import javax.faces.component.UIComponent; 9. import javax.faces.context.FacesContext; 10. import javax.faces.validator.ValidatorException; 11. import persistencia.*;

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

12.
13. public class Lista {

14.
15.

16.
17.

18.
19.

20.
21.

22.
23.

private private private private private private private private


};

String txtNombre; String txtApellido; String txtDireccion; String txtMail; Date txtFechaNac; double txtSueldoBas; int txtSectorEmpr; ArrayList<Persona> lista = new ArrayList<Persona>() {

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

24.
25.

26.
27.

28.
29.

30.
31.

32.
33.

private private private private private private private private private

34.
35.

HtmlInputText nombre; HtmlInputText apellido; HtmlInputText direccion; HtmlInputText mail; HtmlInputText fechaNac; HtmlInputText sueldoBas; HtmlInputText sectorEmpr; HtmlDataTable tabla; Persona persona; PersonaJpaController controlador; SimpleDateFormat fecha = new SimpleDateFormat("dd/MM/yyyy");

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223) CLICK AQUI

36.
37.

38.
39.

public Lista() { persona = new Persona(); controlador = new PersonaJpaController();


cargarTabla(); }

COMPARTI ESTE SITIO

40.
41.

Interes en gral.!! public void cargarTabla() {


215 / 264

42.

http://www.compujuy.com.ar/postx.php?id=88

CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION 42. public void cargarTabla

15/12/2012

43.

lista = (ArrayList<Persona>) controlador.findPersonaEntities(); 44. } 45. 46. public void limpiarCampos() { 47. this.nombre.resetValue(); 48. this.apellido.resetValue(); 49. this.direccion.resetValue(); 50. this.mail.resetValue(); 51. this.fechaNac.resetValue(); 52. this.sectorEmpr.resetValue(); 53. this.sueldoBas.resetValue(); 54. } 55. 56. public void cargarLista() { 57. persona = new Persona(); 58. persona.setNombre(txtNombre); 59. persona.setApellido(txtApellido); 60. persona.setDireccion(txtDireccion); 61. persona.setFechaNacimiento(fecha.format(txtFechaNac)); 62. persona.setSectorEmpresa(txtSectorEmpr); 63. persona.setSueldoBasico(txtSueldoBas); 64. persona.setMail(txtMail); 65. controlador.create(persona); 66. cargarTabla(); 67. limpiarCampos(); 68. } 69. 70. public void seleccionLista() throws ParseException { 71. limpiarCampos(); 72. persona = (Persona) tabla.getRowData(); 73. this.txtApellido = persona.getApellido(); 74. this.txtNombre = persona.getNombre(); 75. this.txtDireccion = persona.getDireccion(); 76. this.txtMail = persona.getMail(); 77. this.txtSectorEmpr = persona.getSectorEmpresa(); 78. this.txtSueldoBas = persona.getSueldoBasico(); 79. this.txtFechaNac = fecha.parse(persona.getFechaNacimiento()); 80. } 81. 82. public void eliminarLista() { 83. try { 84. controlador.destroy(persona.getId()); 85. cargarTabla(); 86. limpiarCampos(); 87. 88. } catch (Exception e) { 89. System.out.println(e); 90. } 91. }

Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

Map

Satellite

Hybrid

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

92.
93.

public void modificarLista() {


persona.setNombre(txtNombre); persona.setApellido(txtApellido); persona.setDireccion(txtDireccion); persona.setFechaNacimiento(fecha.format(txtFechaNac)); persona.setSectorEmpresa(txtSectorEmpr); persona.setSueldoBasico(txtSueldoBas); persona.setMail(txtMail); try { controlador.edit(persona); } catch (Exception e) { System.out.println(e); } }

94.
95.

96.
97.

98.
99.

100.
101.

102.
103.

104.
105.

106.
107.

108.
109.

public HtmlDataTable getTabla() { return tabla;


}

110.
111.

112.
113.

public void setTabla(HtmlDataTable tabla) { this.tabla = tabla;


}

114.
115.

116.
117.

public ArrayList<Persona> getLista() { return lista;


}

118.
119.

120.
121.

public void setLista(ArrayList<Persona> lista) { this.lista = lista;


}

122.
123.

124.
125.

public String getTxtApellido() { return txtApellido;


}

126.
127.

128.
129.

public void setTxtApellido(String txtApellido) { this.txtApellido = txtApellido;


}

130.
131.

132.

public String getTxtDireccion() {


216 / 264

http://www.compujuy.com.ar/postx.php?id=88

CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION

15/12/2012

133.

return txtDireccion;
}

134.
135.

136.
137.

public void setTxtDireccion(String txtDireccion) { this.txtDireccion = txtDireccion;


}

138.
139.

140.
141.

public String getTxtNombre() { return txtNombre;


}

142.
143.

144.
145.

public void setTxtNombre(String txtNombre) { this.txtNombre = txtNombre;


}

146.
147.

148.
149.

public Date getTxtFechaNac() { return txtFechaNac;


}

150.
151.

152.
153.

public void setTxtFechaNac(Date txtFechaNac) { this.txtFechaNac = txtFechaNac;


}

154.
155.

156.
157.

public int getTxtSectorEmpr() { return txtSectorEmpr;


}

158.
159.

160.
161.

public void setTxtSectorEmpr(int txtSectorEmpr) { this.txtSectorEmpr = txtSectorEmpr;


}

162.
163.

164.
165.

public double getTxtSueldoBas() { return txtSueldoBas;


}

166.
167.

168.
169.

public void setTxtSueldoBas(double txtSueldoBas) { this.txtSueldoBas = txtSueldoBas;


}

170.
171.

172.
173.

public String getTxtMail() { return txtMail;


}

174.
175.

176.
177.

public void setTxtMail(String txtMail) { this.txtMail = txtMail;


}

178.
179.

180.
181.

public HtmlInputText getApellido() { return apellido;


}

182.
183.

184.
185.

public void setApellido(HtmlInputText apellido) { this.apellido = apellido;


}

186.
187.

188.
189.

public HtmlInputText getDireccion() { return direccion;


}

190.
191.

192.
193.

public void setDireccion(HtmlInputText direccion) { this.direccion = direccion;


}

194.
195.

196.
197.

public HtmlInputText getFechaNac() { return fechaNac;


}

198.
199.

200.
201.

public void setFechaNac(HtmlInputText fechaNac) { this.fechaNac = fechaNac;


}

202.
203.

204.
205.

public HtmlInputText getMail() { return mail;


}

206.
207.

208.
209.

public void setMail(HtmlInputText mail) { this.mail = mail;


}

210.
211.

212.
213.

public HtmlInputText getNombre() { return nombre;


}

214.
215.

216.
217.

public void setNombre(HtmlInputText nombre) { this.nombre = nombre;


}

218.
219.

220.
221.

public HtmlInputText getSueldoBas() { return sueldoBas;


}

222.
223.

224.

public void setSueldoBas(HtmlInputText sueldoBas) {


217 / 264

http://www.compujuy.com.ar/postx.php?id=88

CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION

15/12/2012

225.

this.sueldoBas = sueldoBas;
}

226.
227.

228.
229.

public HtmlInputText getSectorEmpr() { return sectorEmpr;


}

230.
231.

232.
233.

public void setSectorEmpr(HtmlInputText sectorEmpr) { this.sectorEmpr = sectorEmpr;


}

234.
235.

236.
237.

public void validaMail(FacesContext fc, UIComponent uic, Object


o) {

//convertimos a string
String strValue = String.valueOf(o);

238.
239.

240.
241.

242.
243.

//verificamos el mail por una expresion regular if (!strValue.matches(".+@.+\\.[a-z]+")) { //si noes valido lanzamos una excepsion con un mensaje throw new ValidatorException(new FacesMessage("Formato

de mail incorrecto")); } 244. } 245. }

A la clase anterior le agregamos las siguientes propiedades que son necesarios para poder resetear nuestros inputtext.
1.

2.
3.

4.
5.

6.
7.

8.

private private private private private private private private

HtmlInputText HtmlInputText HtmlInputText HtmlInputText HtmlInputText HtmlInputText HtmlInputText HtmlDataTable

nombre; apellido; direccion; mail; fechaNac; sueldoBas; sectorEmpr; tabla;

Tambin agregamos el siguiente mtodo


1. public void limpiarCampos() { 2. this.nombre.resetValue(); 3. this.apellido.resetValue(); 4. this.direccion.resetValue(); 5. this.mail.resetValue(); 6. this.fechaNac.resetValue(); 7. this.sectorEmpr.resetValue(); 8. this.sueldoBas.resetValue(); 9. }

10.

El mtodo anterior es necesario para resetear todos los inputtext a los valores iniciales, sobre todo a la hora de la validacin, ya que si aparece un mensaje de validacin nos deje seleccionar de la tabla otro registro dejando de lado el mensaje, de otro modo no nos dejara seleccionar ningn otro registro. Tambin incluiremos nuestro archivo error.properties
1. # TO CHANGE this template, choose Tools | Templates 2. # AND open the template IN the editor. 3. javax.faces.component.UIInput.REQUIRED="Campo obligatorio" 4. javax.faces.validator.DoubleRangeValidator.MAXIMUM = El valor debe ser inferior a "{0}" 5. javax.faces.validator.DoubleRangeValidator.MINIMUM = El valor debe ser superior a "{0}" 6. javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE = El valor no se encuentra en el rango entre {0} y {1}. 7. javax.faces.validator.DoubleRangeValidator.TYPE = El valor no es del tipo correcto 8. javax.faces.validator.LengthValidator.MAXIMUM =El valor debe ser inferior a "{0}" caracteres 9. javax.faces.validator.LengthValidator.MINIMUM = El valor debe ser superior a "{0}" caracteres 10. javax.faces.validator.LongRangeValidator.MAXIMUM = El valor debe ser inferior a ''{0}'' 11. javax.faces.validator.LongRangeValidator.MINIMUM = El valor debe ser superior a ''{0}'' 12. javax.faces.validator.LongRangeValidator.NOT_IN_RANGE = El valor no se encuentra en el rango entre {0} y {1}. 13. javax.faces.validator.LongRangeValidator.TYPE = El valor no es del tipo correcto. 14. javax.faces.converter.DateTimeConverter.DATE = ''{0}'' No es un formato valido de fecha, ejemplo 22/02/1986. 15. javax.faces.converter.DoubleConverter.DOUBLE = ''{0}'' No es un numero decimal vlido. 16. javax.faces.converter.IntegerConverter.INTEGER = ''{0}'' No numero entero valido.

El archivo de configuracin facesconfig.xml


1. <?xml version='1.0' encoding='UTF-8'?>

2. <!-- =========== FULL CONFIGURATION FILE


http://www.compujuy.com.ar/postx.php?id=88 218 / 264

CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION

15/12/2012

================================== -->
3. <faces-config version="2.0" 4. xmlns="http://java.sun.com/xml/ns/javaee" 5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 6. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"> 7. <managed-bean> 8. <managed-bean-class>Lista</managed-bean-class> 9. <managed-bean-name>lista</managed-bean-name> 10. <managed-bean-scope>session</managed-bean-scope> 11. </managed-bean> 12. <application> 13. <message-bundle>error</message-bundle> 14. </application> 15. </faces-config>

En el post anterior creamos nuestro primer proyecto Icefaces que por defecto nos creo el archivo welcomeICEfaces.xhtml para que se ejecute en primer lugar, lo que haremos ahora es crear un archivo xhtml pero de nombre index.xhtml para que se ejecute en primer lugar. Lo creamos y agregamos las siguientes lneas
1. <?xml version='1.0' encoding='UTF-8' ?>

2. <!-3. Document : welcomeICEfaces 4. Created on : 03/05/2011, 21:23:13 5. Author : RAFAEL 6. -->


7. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 8. <html xmlns="http://www.w3.org/1999/xhtml" 9. xmlns:ui="http://java.sun.com/jsf/facelets" 10. xmlns:f="http://java.sun.com/jsf/core" 11. xmlns:h="http://java.sun.com/jsf/html" 12. xmlns:icecore="http://www.icefaces.org/icefaces/core" 13. xmlns:ace="http://www.icefaces.org/icefaces/components" 14. xmlns:ice="http://www.icesoft.com/icefaces/component" 15. > 16. <h:head> 17. <title>Compujuy..</title> 18. <link rel="stylesheet" type="text/css" href="./xmlhttp/css/rime/rime.css"/> 19. </h:head> 20. <h:body styleClass="ice-skin-rime"> 21. <ice:form > 22. <ice:dataTable rows="2" value="#{lista.lista}" var="lis" binding="#{lista.tabla}" id="tabla" > 23. <h:column> 24. <f:facet name="header"> 25. <ice:outputText value="NOMBRE"/> 26. </f:facet> 27. <ice:outputText value="#{lis.nombre}"/> 28. </h:column> 29. <h:column> 30. <f:facet name="header"> 31. <ice:outputText value="APELLIDO"/> 32. </f:facet> 33. <ice:outputText value="#{lis.apellido}"/> 34. </h:column> 35. <h:column> 36. <f:facet name="header"> 37. <ice:outputText value="DIRECCION"/> 38. </f:facet> 39. <ice:outputText value="#{lis.direccion}"/> 40. </h:column> 41. <h:column> 42. <f:facet name="header"> 43. <ice:outputText value="FECHA. DE NAC"/> 44. </f:facet> 45. <ice:outputText value="#{lis.fechaNacimiento}"/> 46. </h:column> 47. <h:column> 48. <f:facet name="header"> 49. <ice:outputText value="SUELDO BAS."/> 50. </f:facet> 51. <ice:outputText value="#{lis.sueldoBasico}"/> 52. </h:column> 53. <h:column> 54. <f:facet name="header"> 55. <ice:outputText value="SECTOR DE EMP."/> 56. </f:facet> 57. <ice:outputText value="#{lis.sectorEmpresa}"/> 58. </h:column> 59. <h:column > 60. <f:facet name="header"> 61. <ice:outputText value="MAIL"/> 62. </f:facet> 63. <ice:outputText value="#{lis.mail}"/> 64. </h:column> 65. <h:column> 66. <f:facet name="header"> 67. <ice:outputText value="SELECCION"/>
http://www.compujuy.com.ar/postx.php?id=88 219 / 264

CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION

15/12/2012

68.
69.

70.
71.

72.
73.

74.
75.

76.
77.

78.
79.

80.
81.

82.
83.

84.
85.

86.
87.

88.
89.

90.
91.

92.
93.

94.
95.

96.
97.

98.
99.

100.
101.

102.
103.

104.
105.

106.
107.

108.
109.

110.
111.

112.
113.

114.
115.

116.
117.

118.
119.

120.
121.

122.
123.

124.
125.

126.
127.

128.
129.

130.
131.

132.
133.

134.
135.

136.
137.

138.

</f:facet> <ice:commandLink partialSubmit="true" action="#{lista.seleccionLista}"> SELECCION </ice:commandLink> </h:column> </ice:dataTable> <ice:dataPaginator id="paginador" for="tabla" paginator="true" fastStep="2" paginatorMaxPages="4"> <f:facet name="first"> <ice:graphicImage url="./xmlhttp/css/xp/css-images/arrowfirst.gif" style="border:none;" title="Primer pagina"/> </f:facet> <f:facet name="last"> <ice:graphicImage url="./xmlhttp/css/xp/css-images/arrowlast.gif" style="border:none;" title="Ultima Pagina"/> </f:facet> <f:facet name="previous"> <ice:graphicImage url="./xmlhttp/css/xp/css-images/arrowprevious.gif" style="border:none;" title="Pagina Anterior"/> </f:facet> <f:facet name="next"> <ice:graphicImage url="./xmlhttp/css/xp/css-images/arrownext.gif" style="border:none;" title="Proxima Pagina"/> </f:facet> <f:facet name="fastforward"> <ice:graphicImage url="./xmlhttp/css/xp/css-images/arrow-ff.gif" style="border:none;" title="Adelantar"/> </f:facet> <f:facet name="fastrewind"> <ice:graphicImage url="./xmlhttp/css/xp/css-images/arrow-fr.gif" style="border:none;" title="Atrasar"/> </f:facet> </ice:dataPaginator> </ice:form> <ice:form > <ice:outputLabel for="nombre"> Nombre </ice:outputLabel> <ice:inputText id="nombre" required="true" value="#{lista.txtNombre}" binding="#{lista.nombre}"> <f:validateLength minimum="3" maximum="30"/></ice:inputText> <ice:message for="nombre"></ice:message><br></br> <ice:outputLabel for="apellido"> Apellido </ice:outputLabel> <ice:inputText id="apellido" required="true" value="#{lista.txtApellido}" binding="#{lista.apellido}"> <f:validateLength minimum="3" maximum="30"/></ice:inputText> <ice:message for="apellido"></ice:message><br></br> <ice:outputLabel for="direccion"> Direccion </ice:outputLabel> <ice:inputText id="direccion" required="true" value="#{lista.txtDireccion}" binding="#{lista.direccion}"> <f:validateLength minimum="3" maximum="50"/></ice:inputText> <ice:message for="direccion"></ice:message><br></br> <ice:outputLabel for="mail"> Mail </ice:outputLabel> <ice:inputText id="mail" required="true" validator="#{lista.validaMail}" value="#{lista.txtMail}" binding="#{lista.mail}" > </ice:inputText> <ice:message for="mail"></ice:message><br></br> <ice:outputLabel for="feciceaNac"> Fecha de Nac. </ice:outputLabel> <ice:inputText id="fechaNac" required="true" value="#{lista.txtFechaNac}" binding="#{lista.fechaNac}"> <f:convertDateTime pattern="dd/MM/yyyy"/></ice:inputText> <ice:message for="fechaNac"></ice:message><br></br> <ice:outputLabel for="sectorEmpr"> Sector de la Empresa </ice:outputLabel> <ice:inputText id="sectorEmpr" required="true" value="#{lista.txtSectorEmpr}" binding="#{lista.sectorEmpr}"> <f:validateLongRange minimum="0" maximum="11"/></ice:inputText>
220 / 264

http://www.compujuy.com.ar/postx.php?id=88

CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION

15/12/2012

139.

140.
141.

142.
143.

144.
145.

146.
147.

<ice:message for="sectorEmpr"></ice:message><br></br> <ice:outputLabel id="te" for="sueldoBasico"> Sueldo Basico </ice:outputLabel> <ice:inputText id="sueldoBasico" required="true" converter="#{Double}" value="#{lista.txtSueldoBas}" binding="#{lista.sueldoBas}"> <f:validateDoubleRange minimum="0" maximum="5000"/> </ice:inputText> <ice:message for="sueldoBasico"></ice:message><br></br><br></br> <ice:commandButton value="Agregar" id="agregar" action="#{lista.cargarLista}"></ice:commandButton> <ice:commandButton value="Modificar" action="#{lista.modificarLista}"></ice:commandButton> <ice:commandButton value="Eliminar" action="#{lista.eliminarLista}"></ice:commandButton> </ice:form> </h:body>

148.
149.

150. </html>

Ahora para que se ejecute este archivo en primer lugar realizamos los siguientes pasos, nos ubicamos sobre el proyecto le damos click derecho sobre propiedades y nos aparece la siguiente ventana

Sobre run cambiamos el campo Relative url, que anteriormente estaba con welcomeIcefaces.jsf por index.jsf, lo hacemos como lo muestra la imagen para que lo primero que se ejecute sea el index

http://www.compujuy.com.ar/postx.php?id=88

221 / 264

CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION

15/12/2012

Reiniciamos el servidor, en mi caso Glassfish, para que tome los cambios realizados.

Ahora brevemente por cuestiones de tiempo explicare las lneas cambiadas al index.xhtml de los post anteriores Para empezar se cambio todos los tags que anteriormente pertenecan a la librera de jsf, por los tags pertenecientes a icefaces, como por ejemplo, en los posts anteriores tenamos <h:datatable> Ahora tenemos <ice:datatable> Este cambio se hizo a todos los componentes, otro cambio importante es el de la incorporacin de la paginacin, mediante el siguiente componente de icefaces <ice:dataPaginator id="paginador" </ice:dataPaginator> En donde para el <ice:dataPaginator> tenemos las siguientes propiedades
id="paginador" - establece el id del componente for="tabla" a que tabla se le realize la paginacin, osea el id de la tabla paginator="true" - si esta active la paginacion, en este caso en true. fastStep="2" numero de fila a mostrar par alas tablas paginatorMaxPages="4" maximo de paginas a mostrar en la paginacion.

Luego dentro del dataPaginator tenemos, un componente de faces core, que nos define el aspecto que va a tener nuestra paginacion <f:facet name="fastrewind"> <ice:graphicImage url="./xmlhttp/css/xp/css-images/arrow-first.gif" --la imagen que tendra en este caso el link de primera pagina style="border:none;" --aqui le podemos agregar estilo adicional que querramos title="Primera pagina"/> -- y por ultimo el titulo o tooltiptext que tendra
http://www.compujuy.com.ar/postx.php?id=88 222 / 264

CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION tendra

15/12/2012

</f:facet> Por otra parte a todos los inputtext le agregamos la propiedad de binding, para poder accesarlos desde la clase lista y poder reserearlos <ice:inputText id="nombre" required="true" value="#{lista.txtNombre}" binding="#{lista.nombre}"> En la linea anterior al inputtext nombre lo accedemos desde la clase lista mediante la propiedad nombre propiamente dicha. Por ultimo tambin le agregamos la propiedad partialSubmit="true" ,para el commandlink, esta es necesaria para poder ejecutar el mismo en caso de que una validacin surga y no nos deje hacerlo, osea seria un envio parcial, esto es especficamente para la hora en que aparezca una validacin, sin esta propiedad en caso de que nos aparezca un mensaje de validacin para los campos de entrada el command link no tendra ningn efecto. <ice:commandLink partialSubmit="true" action="#{lista.seleccionLista}"> Esos son las cambios mas importantes realizados a nuestro post CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL Antes de ponerlo a prueba no nos olvidemos de incluir nuestro proyecto de persistencia como lo hicimos en el post CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL Tambin no olvidemos de incluir las libreras necesarias para poder correlo en este caso las que muestran la siguiente imagen

El rbol del proyecto queda de la siguiente manera

http://www.compujuy.com.ar/postx.php?id=88

223 / 264

CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION

15/12/2012

Las libreras son las siguientes

No olvidemos tambin tener el Mysql corriendo. Si tenemos todos los pasos realizados estamos en condiciones de poder ejecutar nuestro proyecto Icefaces de actualizacin de registros, lo ejecutamos y el resultado debera ser el siguiente:

http://www.compujuy.com.ar/postx.php?id=88

224 / 264

CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION

15/12/2012

Como lo muestra la imagen ya tenemos incluida la paginacin a nuestro anterior ejemplo jsf, adems todos los cambios se reflejan en una base de datos Mysql. Bueno eso ha sido todo por ahora, cualquier duda dejen su comentario, hasta pronto.

miguel comento...

el dia 27/06/2011 a las 18:53

Esta bueno tu proyecto te doy 10 puntos y si puedes subir el codigo fuente ... para probarlo seria vacan ...
FABRICIO comento...
el dia 03/07/2011 a las 11:36

Muy bueno,muy bueno, voy a probarlo....!! Felicitaciones..!!


leonardo comento...
el dia 14/07/2011 a las 17:04

Excelente post, continua apoyando. FELICITACIONES


manuel comento...
el dia 24/07/2011 a las 11:47

Los botones agregar y modificar no se ejecutan, no se q pasa..!!


JOSE comento...
el dia 07/09/2011 a las 12:20

Puedes hacer este mismo ejemplo pero con el FRAMEWORK PRIMEFACES ? saludos
Vicente comento...
el dia 16/01/2012 a las 13:07

Hice un proyecto parecido solo que no se como actualizar el dataTable de manera automatica cada 5 seg sin refrescar tooda la pagina. He leido que hay que usar el AJAX Push de ICEFaces pero no tengo idea de como usarlo. Ojala puedas darme una orientacion Saludos
jhovany comento...
el dia 17/01/2012 a las 19:22

disculpe me sale este error no se puede crear la instancia de la clase: lista


INGRESA TU COMENTARIO

NOMBRE MAIL

http://www.compujuy.com.ar/postx.php?id=88

225 / 264

CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION

15/12/2012

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=88

226 / 264

AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT)

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT)

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2136) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4672)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

CATEGORIAS

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

Que tal, despues de un tiempo, sin realizar posts por cuestiones de tiempo, volvemos al ruedo, en esta ocasin haremos un ejemplo de cmo autocompletar texto en Java (JSF) de la mano del framework Icefaces. Este Framework atraves de peticiones Ajax al servidor traera nombres de personas coincidentes con lo que tipeamos en un SelectInputText. Para empezar podemos visitar el post donde nos introducimos a conceptos Sobre Icefaces
CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9

JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

Para este posts, suponemos que ya sabemos como crear un proyecto con Icefaces. Una vez creado el proyecto, haremos uso de la clase Persona, anteriormente utilizada en otros post, a continuacin el cdigo de la misma
1. /**

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5446) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2136) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4672) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5998) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6820) JPA EN NETBEANS CON MYSQL (7669) APLICAR ESTILO CSS EN JSF (9675)

2.
3.

4.
5.

6.
7.

8.
9.

* * @author RAFAEL */ public class Persona { private String apellido; private String nombre; private String direccion; public Persona(String apellido, String nombre, String direccion)
{

10.
11.

12.
13.

this.apellido = apellido; this.nombre = nombre; this.direccion = direccion;


} Persona() { }

14.
15.

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

16.
17.

18.
19.

20.
21.

public String getApellido() { return apellido;


}

22.
23.

public void setApellido(String apellido) { this.apellido = apellido;


}

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

24.
25.

26.
27.

public String getDireccion() { return direccion;


}

28.
29.

public void setDireccion(String direccion) { this.direccion = direccion;


}

30.
31.

32.
33.

public String getNombre() { return nombre;


}

34.
35.

public void setNombre(String nombre) { this.nombre = nombre;


}

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223) CLICK AQUI

36.
37. }

38.

Esta clase no es mas que una simple clase que nos representa la Entidad Persona, de una manera sencilla y simplificada para el ejemplo. Por otra parte tenemos tambin la clase bean, que nos hara de backbeans para nuestra vista, a continuacin el cdigo con lneas comentadas para una mejor comprensin de la misma
http://www.compujuy.com.ar/postx.php?id=89

COMPARTI ESTE SITIO

Interes en gral.!!
227 / 264

AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT)

15/12/2012

1. import 2. import 3. import 4. import 5. import

com.icesoft.faces.component.selectinputtext.SelectInputText; java.util.ArrayList; java.util.List; javax.faces.event.ValueChangeEvent; javax.faces.model.SelectItem;

6.
7. /**

8.
9.

10.
11.

12.
13.

* * @author RAFAEL */ public class bean { private List<SelectItem> posiblespersonas; private Persona[] persona = new Persona[]{
Persona("Tolaba", "Fabiola", "Paso de Jama"), Persona("Ramos", "Pedro", "Guemes"), Persona("Ortega", "Ariel", "Ledesma"), Persona("Nina", "Juan", "Sta. Barbara"), Persona("Camacho", "Beatriz", "Abra Pampa"), Persona("Gomez ", "Pedro", "San Pedro")}; private String personaSeleccionada; private String labelPersona; new new new new new new

14.
15.

16.
17.

Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

18.
19.

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

20.
21.

Map

Satellite

Hybrid

22.
23.

public bean() {
}

24.
25.

26.
27.

28.
29.

public void autocompletarPersona(ValueChangeEvent event) { //Se comprueba la instancia del objeto input if (event.getComponent() instanceof SelectInputText) { //se extrae la instancia del componente Selectinputtext
SelectInputText autoComplete = (SelectInputText)

30.
31.

32.
33.

34.
35.

36.
37.

38.
39.

event.getComponent(); //Atraves del evento se extrae lo que se digito en el SelectInputText String cadenaDigitada = (String) event.getNewValue(); //Se aade a la propiedad posiblepersonas lo que devuelve //el metodo buscaPersona this.posiblespersonas = buscaPersona(cadenaDigitada); //en el if se comprueba si existe alguna seleccion if (autoComplete.getSelectedItem() != null) { //Se extrae el objeto seleccionado
Persona personaSel = (Persona) autoComplete.getSelectedItem().getValue();

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

40. seleccionado
41.

// a labelPersona la modificamos segun lo this.labelPersona = "La persona seleccionada es : "

+ personaSel.getApellido() + " " + personaSel.getNombre(); } 43. } 44. } 45. 46. public List<SelectItem> buscaPersona(String cadenaDigitada) { 47. //inicializamos un objeto del tipo SelectItem 48. List<SelectItem> list = new ArrayList<SelectItem>(); 49. // inicializamos un bucle for para recorrer el objeto

42.

persona 50.
51.

for (Persona p : persona) { // preparamos la cadena a comparar y la pasamos a minusculas 52. String cadenaPersona = (p.getApellido() + " " +
53. p.getNombre()).toLowerCase(); cadenaDigitada = cadenaDigitada.toLowerCase();

54.
55.

//con el metodo indesof del estring verificamos si la // cadenaDigitada esta contenida el la cadenaPersona, que con//tiene el apellido y nombre de la Persona if (cadenaPersona.indexOf(cadenaDigitada) >= 0) {
SelectItem item = new SelectItem(p, p.getApellido() + " " + p.getNombre()); list.add(item); } } return list; }

56.
57.

58.
59.

60.
61.

62.
63.

64.
65.

66.
67.

public Persona[] getPersona() { return persona;


}

68.
69.

70.
71.

public void setPersona(Persona[] persona) { this.persona = persona;


}

72.
73.

74.
75.

public List<SelectItem> getPosiblespersonas() { return posiblespersonas;


}

76.
77.

78.

public void setPosiblespersonas(List<SelectItem> posiblespersonas) { 79. this.posiblespersonas = posiblespersonas; 80. } 81. 82. public String getPersonaSeleccionada() {
http://www.compujuy.com.ar/postx.php?id=89 228 / 264

AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT)

15/12/2012

83.

return personaSeleccionada;
}

84.
85.

86.
{ 87.

public void setPersonaSeleccionada(String personaSeleccionada) this.personaSeleccionada = personaSeleccionada;


}

88.
89.

90.
91.

public String getLabelPersona() { return labelPersona;


}

92.
93.

94.
95.

public void setLabelPersona(String labelPersona) { this.labelPersona = labelPersona;


}

96.
97. }

98.

Y por ultimo nuestra vista, en mi caso estoy utlizando la vista que me creo por defecto el netbeans, welcomeICEfaces.xhtml A continuacin el cdigo
1. <?xml version='1.0' encoding='UTF-8' ?>

2. <!-3. Document : welcomeICEfaces 4. Created on : 13/08/2011, 21:00:18 5. Author : RAFAEL 6. -->


7. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 8. <html xmlns="http://www.w3.org/1999/xhtml" 9. xmlns:ui="http://java.sun.com/jsf/facelets" 10. xmlns:f="http://java.sun.com/jsf/core" 11. xmlns:h="http://java.sun.com/jsf/html" 12. xmlns:icecore="http://www.icefaces.org/icefaces/core" 13. xmlns:ace="http://www.icefaces.org/icefaces/components" 14. xmlns:ice="http://www.icesoft.com/icefaces/component" 15. > 16. <h:head> 17. <title>Autocompletar texto-Icefaces-Compujuy</title> 18. <link rel="stylesheet" type="text/css" href="./xmlhttp/css/rime/rime.css"/> 19. </h:head> 20. <h:body styleClass="ice-skin-rime"> 21. <h:form id="form"> 22. <h:outputText value="Autocompletar texto-IcefacesCompujuy"/> 23. <ice:selectInputText id="autocomletaPersona" rows="5" width="350" 24. value="#{bean.personaSeleccionada}" 25. valueChangeListener="#{bean.autocompletarPersona}" 26. listVar="_persona" 27. listValue="#{bean.posiblespersonas}"> 28. <f:facet name="selectInputText"> 29. <ice:panelGrid columns="2"> 30. <ice:outputText id="apellido" value="#{_persona.apellido}" /> 31. <ice:outputText id="nombre" value="#{_persona.nombre}" /> 32. </ice:panelGrid> 33. </f:facet> 34. </ice:selectInputText> 35. 36. </h:form> 37. <h:outputText value="#{bean.labelPersona}"/> 38. </h:body> 39. <h:outputStylesheet library="org.icefaces.component.skins" name="rime.css" /> 40. </html> 41.

El componente que utilizamos para el autocompletado es el <ice:selectInputText > </ice:selectInputText> En donde tenemos las siguientes propiedades: Id: identificacin del componente. rows: la cantidad de filas que nos mostrara el autocompletado width: ancho de las filas del autocompletado value: indica a que propiedad del backbean esta asociada, en este caso a la propiedad personaSeleccionada del nuestra clase bean. valueChangeListener= mtodo que se ejecuta cada vez que se produce un cambio, en este caso se ejecuta el mtodo .autocompletarPersona listVar: varialble o alias a usar por el componente. listValue:representa a que valor del backbean esta asociado, esta propiedad con tiene la lista con las opciones a desplegarse como autocompletado, en este aso corresponde a la lista (List ) posiblespersonas de nuestra clase bean. Dentro de nuestro <ice:selectInputText > </ice:selectInputText> tenemos
http://www.compujuy.com.ar/postx.php?id=89 229 / 264

AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) Dentro de nuestro <ice:selectInputText > </ice:selectInputText>

tenemos <f:facet name="selectInputText"> <ice:panelGrid columns="2"> <ice:outputText id="apellido" value="#{_persona.apellido}" /> <ice:outputText id="nombre" value="#{_persona.nombre}" /> </ice:panelGrid> </f:facet> Atraves del ice:panelGrid, con dos columnas (columns="2") icefaces nos muestra el despliegue del autocompletado. En este caso mostramos el Apellido y el Nombre en 2 outputText. Por otra parte adems de esto nesecitaremos nuestro faces-config.xml que queda de la siguiente manera
1. <?xml version='1.0' encoding='UTF-8'?>

15/12/2012

2. <!-- =========== FULL CONFIGURATION FILE ================================== -->


3. <faces-config version="2.0" 4. xmlns="http://java.sun.com/xml/ns/javaee" 5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 6. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"> 7. <managed-bean> 8. <managed-bean-class>bean</managed-bean-class> 9. <managed-bean-name>bean</managed-bean-name> 10. <managed-bean-scope>session</managed-bean-scope> 11. </managed-bean> 12. </faces-config>

Hasta aqu tenemos todo para ya poder ejecutar nuestro poryecto en donde realizamos el autocompletado con icefaces. Nuestro rbol de proyecto queda de la siguiente manera

Bien, ahora ejecutamos nuestro proyecto, y si todo lo hicimos bien debemos tener lo siguiente

http://www.compujuy.com.ar/postx.php?id=89

230 / 264

AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT)

15/12/2012

Acabamos de tipear, en mi caso la letra t y me aparecen las personas que contienen esa letra Hago una seleccin y el labelPersona me aparece con la cadena La persona seleccionada es : Tolaba Fabiola. como lo muestra la imagen

Bien eso es todo por ahora, espero que haya servido, por dudas, preguntas o sugerencias comenten, si desean el proyecto comenten y en breve lo subire..hasta pronto.

Diego comento...

el dia 21/10/2011 a las 19:59

hola buenas... Primeramente quisiera agradecer por el tutorial, que esta buenisimo. Estoy empezando a programar con iceface y quisiera hacer un autocompletado.. pero con hibernate... es decir que cuando introduzca una letra pueda hacer una consulta a mi bases de datos.. y esta me rellene el selectInputText. Adapte tu ejemplo pero me sale un error cannot be cast to javax.faces.model.SelectItem , no se porque es... he investigado mucho pero no encuentro cual es mi error.. Espero que me puedas ayudar...Gracias de ante mano
rafa comento...
el dia 21/10/2011 a las 20:28

Que tal ahi el error nos dice que no se puede castear, osea no son lo mismos los tipos de datos a asignar, en algun lado quierres asignar un tipo de dato diferente, si pudes poner un trozo de codigo para ver donde esta el error quizas pueda ayudarte mejor..
Diego comento...
el dia 22/10/2011 a las 00:29

hola nuevamente yo.... es esta url este el codigo en el cual tengo el error... http://pastebin.com/3JhCKDKn P.D.: no se que pasa cuando intento pegar algun contenido, creo que un script me bloquea espero que me perdones
rafa comento...
http://www.compujuy.com.ar/postx.php?id=89

el dia 22/10/2011 a las 18:36


231 / 264

AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT)

15/12/2012

El problema por lo visto esta en la linea 5


List<SelectItem> list = null; deberia ser un array
List<SelectItem> list = new ArrayList<SelectItem>();

prueba con eso aver si se te soluciona.Saludos

diego comento...

el dia 22/10/2011 a las 21:58

Hola.. hice lo que me dijiste y no funciona.. Lo que por ahi podria ser que cuando se realizar el query con hibernate, nos traer un a lista de ese objeto, y en cambio SelecetItem tiene otra propiedades y capas eso tenga problema.. lo que estaba pensando es pasar la consulta en una lista de array.. y aver que pasa... Te cuento cuando termine..
diego comento...
el dia 23/10/2011 a las 14:46

nuevamente yo, eh solucionado el tema de la lista asi


Interator iter = listInstancia.interator(); while (iter.hasNext()){ list.add(new SelectItem(iter.next())); }

y me devuelve la lista en mi vista.. pero ocurre un incomeniente que cuando selecciono no pasa por la linea 37 del bean oser por if (autocomplete.getSelectedItem!=null) osea queda nula no ser porque...
Leonel comento...
el dia 26/10/2011 a las 18:59

Me sirvio mucho tu tutorial, muchas gracias!!


Dallan comento...
el dia 19/12/2011 a las 11:31

hola, mira a mi me pasa algo curiose, tengo una selectInputText en un panelPopup la primera vez q lo abro todo funciona perfecto pero la segunda vez q lo abro se sale un puntico al lado de mi selectInputtext, y el metodo valueChanged no sirve, me toco redireccionar la pagina para que funcione bn pero siento que no es lo mas optimo por favor si me puedes ayudar t lo agredecieria mucho
Jacapaca comento...
el dia 20/01/2012 a las 04:30

Estupendo tuto Me ha venido genial para implementar las calles de cualquier municipio seleccionado Un saludo y buen trabajo
Aragon comento...
el dia 27/03/2012 a las 04:14

Justo lo que andaba buscando ! Muchisimas gracias. El ejemplo esta perfecto. Saludos y de nuevo muchas gracias :D
dario comento...
el dia 18/04/2012 a las 14:56

Hola, estoy implementando un proyecto que usa base de datos postgres, hibernate como framewor de persistencia, JSF y estoy tratando usar
http://www.compujuy.com.ar/postx.php?id=89 232 / 264

AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) estoy tratando usar hibernate como framewor de persistencia, JSF y

15/12/2012

icefaces 3. Quisiera saber si se puede usar la la funcin de autocompletar pero que la informacin que va a buscar se tenga en cuenta respecto a los datos de una tabla que fue mapeada con hibernate. Adicionalmente, tengo la duda en el ejemplo cuando se crea el mtodo de autocompletar: public void autocompletarPersona(ValueChangeEvent event) Aqui se observa que requiere de un parmetro de entrada tipo event, pero cuando se invoca desde el xhtml no se pasa dicho parmetro. valueChangeListener="#{bean.autocompletarPersona}" A que se debe sto como puede explicarse? Actualmente tengo un cdigo que estoy trabajando: Agradezco de antemano su valiosa colaboracin no sin antes desearle los mejores xitos.

anonumo comento...

el dia 21/05/2012 a las 18:22

gracias lo checo
Fer comento...
el dia 27/09/2012 a las 19:01

Gracias por la informacion, tengo un pequeo problema, al momento de buscar la lista que se despliega se sobrepone al textFile, como prodia hacerlo para que salga en la parte inferior o en la parte derecha.. Gracias
INGRESA TU COMENTARIO

NOMBRE MAIL

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA


http://www.compujuy.com.ar/postx.php?id=89 233 / 264

AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT)

15/12/2012

http://www.compujuy.com.ar/postx.php?id=89

234 / 264

Facelets en JSF 2.0 (Netbeans 6.9)

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

Facelets en JSF 2.0 (Netbeans 6.9)

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5447) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2136) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4672)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

En una aplicacin Web, cuando se crea la vista o la presentacin al usuario, es indispensable tener un formato en la cual se presentaran las distintas vistas, un plantilla con los menues, la cabecera y el pie, seria ideal que se viera en todas nuestras vistas, para ello por ejemplo en .NET son conocidas las master pages, en nuestro caso en JSF 2.0 disponemos ya incluida la librera de Facelets para la creacin de templates (plantillas). En este posr veremos como crearlas e implementarlas de manera sencilla con Netbeans. Las plantillas nos evitan problemas, nos abaratan recursos, nos da un formato uniforme a la aplicacin, nos centraliza la vista que es comn a todas las paginas. Supongamos que no usamos plantillas, y tenemos 4 paginas distintas, al no tener una plantilla repetiramos el mismo cdigo html (u otro) en todas las paginas, generndonos espacio, y si quisierasmo modificar un men por ejemplo, deberamos modificarlos en cada una de las paginas de nuestra aplicacin, con las plantillas solo tenemos un men, que es referenciado a las dems paginas y al modificar solo modificamos una vez y este cambio se reflejan en todas las paginas que hagan uso de la plantilla modificada. JavaServer Facelets es un framework para plantillas (templates) centrado en la tecnologa JSF (JavaServer Faces), por lo cual se integran de manera muy fcil. Este framework incluye muchas caractersticas siendo las ms importantes: Tiempo de desarrollo cero de los tags para UIComponents. Facilidad en la creacin del templating para los componentes y pginas. Habilidad de separar los UIComponents en diferentes archivos. Un buen sistema de reporte de errores. Soporte completo a EL (Expression Language). Validacin de EL en tiempo de construccin. No es necesaria configuracin XML. Trabaja con cualquier RenderKit. A partir de JSF 2.0, facelets viene incorporado, anteriormente haba que incluir y configurar la librera por separado, ahora y con la ayuda de netbeans esto se hace menos trabajoso. En si Facelets se basa en el uso de las siguientes tags: ui:composition: envuelve un conjunto de componentes para ser reutilizados en otra pgina, es la etiqueta que: -envuelve o puede envolver la plantilla. -se utiliza para hacer referencia a una plantilla. todo lo que quede fuera de la etiqueta ui:composition no ser renderizado. ui:define: define un contenido nombrado para ser insertado en una plantilla, su contenido es un conjunto de componentes y se identifica con un name. Ese conjunto de componentes ser insertado en una etiqueta ui:insert con el mismo name. ui:insert: declara un contenido nombrado que debe ser definido en otra pgina, ui:decorate: es la etiqueta que sirve para hacer referencia a una plantilla, como la etiqueta ui:composition, solo que con ui:decorate lo definido antes y despus de la etiqueta s ser renderizado, ui:param: nos sirve para declarar parmetros y su valor en el uso de plantillas y componentes por composicin, ui:include: es una etiqueta que sirve para incluir en una pgina el contenido de otra, como si el contenido de esta ltima formase parte de la primera.
http://www.compujuy.com.ar/postx.php?id=91

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1471) Facelets en JSF 2.0 (Netbeans 6.9) (5447) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2136) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4672) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5998) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6820) JPA EN NETBEANS CON MYSQL (7669) APLICAR ESTILO CSS EN JSF (9675)

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223) CLICK AQUI

COMPARTI ESTE SITIO

Interes en gral.!!
235 / 264

Facelets en JSF 2.0 (Netbeans 6.9)

15/12/2012

Sin mas que decir ya que en la web hay bastante de informacin, iremos con el ejemplo practico para comprender mas como fuinciona este sistema de plantillas, usando nuestro Netbeans. Abrimos como de costumbre nuestro Netbeans (estoy usando el 6.9 ), creamos un nuevo proyecto. Elegimos aplicacin web java

Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

FEEDS RSS

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

Map

Satellite

Hybrid

50 mi Map data 2012 - Terms of Use 100 km

Le damos el nombre, en este caso FaceletsJSF

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Elegimos el servidor y la versin del jdk

Elegimos el framework, en este caso java server faces

http://www.compujuy.com.ar/postx.php?id=91

236 / 264

Facelets en JSF 2.0 (Netbeans 6.9)

15/12/2012

La pestaa de configuracin la dejamos como esta, aqui indicamos el url pattern que figurara en el web.xml

Y terminamos la creacin del proyecto. Siguiendo las recomendaciones de facelets org., nuestras plantillas (templates) las incluiremos dentro del directorio WEB-INF/templates/, de modo que no sean visibles desde el contenedor web. Para ello nos pocicionamos sobre el directorio WEB-INF , damos click derecho en nuevo-> carpeta, como lo muestra la imagen, en esta carpeta incluiremos nuestras plantillas que iremos creando

Le damos el nombre, en este caso templates y terminamos de crear la carpeta.

http://www.compujuy.com.ar/postx.php?id=91

237 / 264

Facelets en JSF 2.0 (Netbeans 6.9)

15/12/2012

Bien ahora sobre la carpeta recin creada le damos click derecho nuevo-> Facelets Templates

Le damos el nombre, en mi caso plantillaPrincipal, tambien elegimos la forma (seria el maquetado en css) que tendra nuestra plantilla, y si queremos que esta este creada con hojas de estilo CSS o bien a trabes de tablas, en mi caso, y seria lo mas adecuado haremos que el netbeans cree nuestra plantilla con CSS

Y listo ya tenemos creada nuestra plantilla, ahora la explicaremos un poco y la modificaremos, el codigo creado es el siguiente
1. <?xml version='1.0' encoding='UTF-8' ?> 2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3. <html xmlns="http://www.w3.org/1999/xhtml" 4. xmlns:ui="http://java.sun.com/jsf/facelets" 5. xmlns:h="http://java.sun.com/jsf/html">

6.
7.

8.
9.

10.
11.

12.
13.

<h:head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link href="./../../resources/css/default.css" rel="stylesheet" type="text/css" /> <link href="./../../resources/css/cssLayout.css" rel="stylesheet" type="text/css" /> <title>Facelets Template</title> </h:head> <h:body> <div id="top" class="top"> <ui:insert name="top">Top</ui:insert> </div> <div> <div id="left"> <ui:insert name="left">Left</ui:insert> </div> <div id="content" class="left_content"> <ui:insert name="content">Content</ui:insert> </div> </div> </h:body>

14.
15.

16.
17.

18.
19.

20.
21.

22.
23.

24.
25.

26.
27.

28.
29. 31.

30. </html>
http://www.compujuy.com.ar/postx.php?id=91 238 / 264

Facelets en JSF 2.0 (Netbeans 6.9)

15/12/2012

Lo primero que tenemos en cuenta es el nombre de espacios que nesecitamos para poder referenciar a tags facelets xmlns:ui="http://java.sun.com/jsf/facelets" en el cuerpo de la pagina tenemos <div id="top" class="top"> <ui:insert name="top">Top</ui:insert> </div> En donde el div no es mas que una simple etiqueta html Dentro del div tenemos <ui:insert name="top">Top</ui:insert> En donde aqui si tenemos un tag facelets, en donde el tag <ui:insert> nos define el contenido a insertar en otra pagina cuando usemos el tag <ui:define> con el mismo nombre, en este caso Top. <ui:insert name="top"> </ui:insert> contendra el contenido de nuestra cabecera, dentro de esta etiqueta pondremos lo que querramos que se vea en todas nuestras vistas. El resto del contenido del cuerpo es similar a lo antes explicado, solo que tenemos el contenido central (content) y lo que ira en nuestro banner (left). Bien ahora modificaremos nuestro template, queda de la siguiente manera
1. <?xml version='1.0' encoding='UTF-8' ?> 2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3. <html xmlns="http://www.w3.org/1999/xhtml" 4. xmlns:ui="http://java.sun.com/jsf/facelets" 5. xmlns:h="http://java.sun.com/jsf/html">

6.
7.

8.
9.

10.
11.

12.
13.

<h:head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link href="./../../resources/css/default.css" rel="stylesheet" type="text/css" /> <link href="./../../resources/css/cssLayout.css" rel="stylesheet" type="text/css" /> <title>Facelets Template</title> </h:head> <h:body> <div id="top" class="top"> <ui:insert name="top"><h1>FACELETS EN JSF COMPUJUY</h1></ui:insert> </div> <div> <div id="left"> <ui:insert name="left"><ul> <li> <a href="#">item 1</a></li> <li> <a href="#">item 2</a></li> </ul> </ui:insert> </div> <div id="content" class="left_content"> <ui:insert name="content"></ui:insert> </div> </div> </h:body>

14.
15.

16.
17.

18.
19.

20.
21.

22.
23.

24.
25.

26.
27.

28.
29.

30.
31.

32.
33. 35.

34. </html>

Lo unico que hicimos es agregar un titulo a la cabecera (Top) y unos tems a nuestro banner (left). Este ejemplo es sencillo, pero aqu es donde nosotros debemos definir el aspecto a nuestro sitio, la vista que tendr a los usuarios finales en todas las paginas del sitio, excepto por ahora el contenido que varia dependiendo de nuestro contexto. Bien hasta ah nuestra simple plantilla, ahora procedemos acrear nuestra cliente, es decir a crear la pagina que hara uso de esta plantilla. Antes de crearlo, como el netbeans nos crea un index.xhtml por defecto, a este lo eliminaremos, para que nuestro cliente tenga el mismo nombre y no nos cree conflictos (de todos modos si uds. quieren pueden ponerle otro nombre) Nos posicionamos sobre Web Pages, click derecho Nuevo-> Facelets Template Client se nos abre una nueva ventana

http://www.compujuy.com.ar/postx.php?id=91

239 / 264

Facelets en JSF 2.0 (Netbeans 6.9)

15/12/2012

Le damos el nombre y le tenemos que indicar el archivo template, osea la plantilla que usara esta pagina cliente, en nuestro caso es plantillaPrincipal.xhtml, entonces clickeamos en Browser se nos abre una nueva ventana y buscamos nuestra plantilla y la seleccionamos

http://www.compujuy.com.ar/postx.php?id=91

240 / 264

Facelets en JSF 2.0 (Netbeans 6.9)

15/12/2012

Dejamos tal cual esta, el Generated root tag (este es donde se definen los nombres de espacio, si en el tag html o el ui:composition) en este caso los espacios de nombres los definimos sobre el tag html. Listo ya tenemos nuestro cliente con el siguiente cdigo
1. <?xml version='1.0' encoding='UTF-8' ?> 2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3. <html xmlns="http://www.w3.org/1999/xhtml" 4. xmlns:ui="http://java.sun.com/jsf/facelets"> 5. 6. <body> 7. 8. <ui:composition template="./WEBINF/templates/plantillaPrincipal.xhtml"> 9. 10. <ui:define name="top"> 11. top 12. </ui:define> 13. 14. <ui:define name="left"> 15. left 16. </ui:define> 17. 18. <ui:define name="content"> 19. content 20. </ui:define> 21. 22. </ui:composition> 23. 24. </body> 25. </html>

26.

Aqu tenemos el tag <ui:define name="top"> top </ui:define> Este tag facelets nos define el contenido a reemplazar al tag <ui:insert name="top"> del mismo nombre (en este caso top) en la plantilla. Es decir que si dejamos al tag <ui:define name="top"> top </ui:define> Este reemplazara a todo el contenido del tag <ui:insert name="top"> insertado en la plantilla plantillaPrincipal.xhtml, osea a lo siguiente <ui:insert name="top"><h1>FACELETS EN JSF COMPUJUY</h1></ui:insert> Lo remarcado con rojo sera reemplazado por top que se encuentra dentro del ui: define . Por ello quitaremos al top y al left, ya que estos sern contenido que se repetirn en todas las vistas, sino no tendra mucho sentido hacerlos, y dejaremos el tag content, en donde este si variara en todas las vistas, ya que es un contenido que depender de cada contexto de la aplicacin. El codigo modificado de la pagina cliente index.xhtml queda de la siguiente manera
1. <?xml version='1.0' encoding='UTF-8' ?> 2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3. <html xmlns="http://www.w3.org/1999/xhtml" 4. xmlns:ui="http://java.sun.com/jsf/facelets">
http://www.compujuy.com.ar/postx.php?id=91 241 / 264

Facelets en JSF 2.0 (Netbeans 6.9)

15/12/2012

5.

6.
7.

<body> <ui:composition template="./WEBINF/templates/plantillaPrincipal.xhtml"> <ui:define name="content"><p> JavaServer Facelets es un framework para plantillas (templates) <br/> centrado en la tecnologa JSF (JavaServer Faces), por lo cual se<br/> integran de manera muy fcil. Este framework incluye muchas<br/> caractersticas siendo las ms importantes</p> </ui:define> </ui:composition> </body> </html>

8.
9.

10. 11. 12. 13. 14.


15.

16.
17.

Al tag content le incluimos un texto. Ahora podemos ejecutar nuestro primer y sencillo ejemplo. Antes de ejecutarlo verificamos que el web.xml, esta bien configurado de acuerdo a nuestro url-patern como lo muestra la imagen.

Ejecutamos el proyecto, y el resultado debera ser el siguiente

La url a ejecutar el proyecto segn su configuracin en el web.xml podra ser tambin la siguiente

http://www.compujuy.com.ar/postx.php?id=91

242 / 264

Facelets en JSF 2.0 (Netbeans 6.9)

15/12/2012

Segn lo hecho hasta ahora parece estar todo en orden, pero si observamos bien nuestra plantilla plantillaPrincipal.xhtml creada por nuestro Netbeans viene incluidad con unos archivos de estilo CSS en la cabecera <h:head> <meta http-equiv="Content-Type" content="text/html; charset=UTF8" /> <link href="./../../resources/css/default.css" rel="stylesheet" type="text/css" /> <link href="./../../resources/css/cssLayout.css" rel="stylesheet" type="text/css" /> <title>Facelets Template</title> </h:head> Estos archivos css se encuentran dentro de la carpeta resources/css/, la cual no se esta referenciando bien.

Este, por lo menos en la versin que yo estoy usando (Netbeans 6.9) no esta bien referenciado, ya que la ruta a referenciar debe ser de acuerdo a la pagina cliente, en nuestro caso index.xhtml, desde aqu debemos interpretar el path para referenciar los archivos CSS. Osea segn el rbol debemos ingresar directamente a resources/css/, El head de la plantilla quedara, para nuestro ejemplo <h:head> <meta http-equiv="Content-Type" content="text/html; charset=UTF8" /> <link href="./resources/css/default.css" rel="stylesheet" type="text/css" /> <link href="./resources/css/cssLayout.css" rel="stylesheet" type="text/css" /> <title>Facelets Template</title> </h:head> El cdigo completo de la plantilla plantillaPrincipal.xhtml quedara de la siguiente manera
1. <?xml version='1.0' encoding='UTF-8' ?> 2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3. <html xmlns="http://www.w3.org/1999/xhtml" 4. xmlns:ui="http://java.sun.com/jsf/facelets"
http://www.compujuy.com.ar/postx.php?id=91 243 / 264

Facelets en JSF 2.0 (Netbeans 6.9)

15/12/2012

5.

xmlns:h="http://java.sun.com/jsf/html"> <h:head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link href="./resources/css/default.css" rel="stylesheet" type="text/css" /> <link href="./resources/css/cssLayout.css" rel="stylesheet" type="text/css" /> <title>Facelets Template</title> </h:head> <h:body> <div id="top" class="top"> <ui:insert name="top"><h1>FACELETS EN JSF COMPUJUY</h1></ui:insert> </div> <div> <div id="left"> <ui:insert name="left"> <ul> <li> <a href="#">item 1</a></li> <li> <a href="#">item 2</a></li> </ul> </ui:insert> </div> <div id="content" class="left_content"> <ui:insert name="content"></ui:insert> </div> </div> </h:body>

6.
7.

8.
9.

10.
11.

12.
13.

14.
15.

16.
17.

18.
19.

20.
21.

22.
23.

24.
25.

26.
27.

28.
29.

30.
31.

32.
33.

34.
35. </html>

36.

Bien, ahora ejecutamos el proyecto y obtenemos lo siguiente. Este resultado es diferente ya que a la pagina index.xhtml se le aplica estilo CSS que lo crea el netbeans.

Bien la imagen nos muestra como queda nuestra pagina index.xhtml con la respectiva referencia a la plantilla plantillaPrincipal.xhtml y esta a su vez la referencia a las hojas de estilo CSS. Bien ahora para comprobar que la plantilla nos sirve para varias paginas, crearemos otra pagina cliente de nombre index2.xhtml

http://www.compujuy.com.ar/postx.php?id=91

244 / 264

Facelets en JSF 2.0 (Netbeans 6.9)

15/12/2012

No olvidemos el nombre y la referencia a la plantilla plantillaPrincipal.xhtml. Modificamos al index2.xhtml con el siguiente cdigo
1. <?xml version='1.0' encoding='UTF-8' ?> 2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3. <html xmlns="http://www.w3.org/1999/xhtml" 4. xmlns:ui="http://java.sun.com/jsf/facelets"> 5. <body> 6. <ui:composition template="./WEBINF/templates/plantillaPrincipal.xhtml"> 7. <ui:define name="content"> 8. Segunda pagina cliente de prueba 9. </ui:define> 10. </ui:composition> 11. </body> 12. </html> 13.

Ejecutamos al index2.xhtml, y el resultado debera ser el siguiente

Con esto comprobamos que en las dos paginas index.xhtml e index2.xhtml ejecutan la misma plantilla, y que el cdigo de la cabecera top y el banner o men left es el mismo y esta centralizado. Bien ahora supongamos que tenemos dos contenidos que se repiten varias veces, uno para unos determinados clientes, y el otro para los de mayor nivel, entonces nesecitariamos 2 contenidos distintos, para no repetir el contenido en todas las vistas, podemos utilizar las etiquetas <ui:include> de facelets. Los include no son mas que el contenido de una pagina en otra, esto es especial cuando no queremos que el mismo contenido se repita en todas las paginas clientes, pero si en algunos. Lo haremos a continuacin. A los includes lo crearemos sobre la carpeta templates, ser un simple archivo xhtml, como lo muestra la imagen

Le damos el nombre contenido1.xhtml y terminamos


http://www.compujuy.com.ar/postx.php?id=91 245 / 264

Facelets en JSF 2.0 (Netbeans 6.9)

15/12/2012

De la misma manera creamos otro archivo xhtml contenido2.xhtml Nuestro rbol de proyecto se tiene que ver asi

Bien ahora reemplazamos el contenido de contenido1.xhtml por lo siguiente


1. <?xml version="1.0" encoding="UTF-8"?>

2. <!-3. To change this template, choose Tools | Templates 4. and open the template in the editor. 5. --> 6. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 7. <html xmlns="http://www.w3.org/1999/xhtml" 8. xmlns:ui="http://java.sun.com/jsf/facelets">> 9. <head> 10. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 11. <title>TODO supply a title</title> 12. </head> 13. <body> 14. <ui:composition> 15. CONTENIDO 1 <br/> 16. CONTENIDO 1 <br/> 17. CONTENIDO 1 <br/> 18. CONTENIDO 1 <br/> 19. CONTENIDO 1 <br/> 20. </ui:composition> 21. </body> 22. </html> 23.

Y el contenido de contenido2.xhtml por lo siguiente


1. <?xml version="1.0" encoding="UTF-8"?>

2. <!-3. To change this template, choose Tools | Templates 4. and open the template in the editor. 5. --> 6. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 7. <html xmlns="http://www.w3.org/1999/xhtml" 8. xmlns:ui="http://java.sun.com/jsf/facelets">> 9. <head>
http://www.compujuy.com.ar/postx.php?id=91 246 / 264

Facelets en JSF 2.0 (Netbeans 6.9)

15/12/2012

10.
11.

12.
13.

14.
15.

16.
17.

18.
19.

20.
21.

22.
23.

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>TODO supply a title</title> </head> <body> <ui:composition> CONTENIDO 2 <br/> CONTENIDO 2 <br/> CONTENIDO 2 <br/> CONTENIDO 2 <br/> CONTENIDO 2 <br/> </ui:composition> </body> </html>

Lo unico que cambia aqui es el nombre y el contenido Ahora el contenido de index.xhtml


1. <?xml version='1.0' encoding='UTF-8' ?> 2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3. <html xmlns="http://www.w3.org/1999/xhtml" 4. xmlns:ui="http://java.sun.com/jsf/facelets"> 5. 6. <body> 7. 8. <ui:composition template="./WEBINF/templates/plantillaPrincipal.xhtml"> 9. <ui:define name="content"> 10. <ui:include src="./WEBINF/templates/contenido1.xhtml" ></ui:include> 11. </ui:define> 12. </ui:composition> 13. </body> 14. </html>

Y el contenido de index2.xhtml
1. <?xml version='1.0' encoding='UTF-8' ?> 2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3. <html xmlns="http://www.w3.org/1999/xhtml" 4. xmlns:ui="http://java.sun.com/jsf/facelets"> 5. <body> 6. <ui:composition template="./WEBINF/templates/plantillaPrincipal.xhtml"> 7. <ui:define name="content"> 8. <ui:include src="./WEBINF/templates/contenido2.xhtml" ></ui:include> 9. </ui:define> 10. </ui:composition> 11. </body> 12. </html> 13.

Estamos en condiciones de ejecutar y si todo sali bien tendremos lo siguiente, ejecutamos el index.xhtml que contiene el contenido1

Y ahora el index2.xhtml

http://www.compujuy.com.ar/postx.php?id=91

247 / 264

Facelets en JSF 2.0 (Netbeans 6.9)

15/12/2012

Bien ya tenemos un tamplate principal y dos paginas clientes de este template, que a la vez los dos cliente tienen incluida 2 contenidos distintos en otros archivos. Por cuestiones de tiempo lo dejo ah, solo falto explicar el tag decrate, pero la nica diferencia con el composition es que este es in line, es decir que lo que este fuera de la etiqueta decrate si ser renderizado. Bueno eso es todo por ahora, lo que haremos en el siguiente post ser usar FACELETS EN ICEFACES con nuestro ultimo ejemplo de datatables, si desean el proyecto que lo suba dejen sus comentarios, hasta pronto.

Jen comento...

el dia 14/11/2011 a las 16:21

Muy buen ejeplo!!! y muy bien explicado, muchas gracias.. solo tengo una duda, al momento de crear los archivos xhtml Contenido1 y Contenido2, en que parte de estos archivos especificas que van a ser utilizados por index1 e index2?? O de pronto debo poner algo en estos templates clientes....Porfa resuelveme esa duda, muchisimas gracias.
rafa comento...
el dia 14/11/2011 a las 17:22

Que tal jen, si tienes razon me olvide incluir las lineas del index.xhtml y del index2.xhtml, ya modifique el post y esta incluido lo que faltaba..saludos
Jen comento...
el dia 15/11/2011 a las 15:16

Hola rafa, muchas gracias por tu respuesta y si es verdad resuelta esa parte, uana preguntita ms porfa de pronto podrias decirme o darme una idea de como puedo hacer para q de los links que estan en el menu de la izquierda se carguen los contenidos pero solo en la parte del content, sin recargar la pagina? Te agaradeceria un mundo. Millon gracias
laura comento...
el dia 09/01/2012 a las 15:47

holalaaaaa no rentiendo
laura comento...
el dia 09/01/2012 a las 15:47

holalaaaaa no rentiendo
laura comento...
el dia 09/01/2012 a las 15:47

holalaaaaa no rentiendo
http://www.compujuy.com.ar/postx.php?id=91 248 / 264

Facelets en JSF 2.0 (Netbeans 6.9)

15/12/2012

Jen comento...

el dia 15/01/2012 a las 12:56

Q no entiendes Laura?? Dime a ver si puedo ayudarte


ronald comento...
el dia 27/01/2012 a las 21:14

hay alguna manera de que con este framework podamos hacer las vistas y los contraladores de manera visual (arrastrando y soltando).
Autodidacta comento...
el dia 29/03/2012 a las 12:32

buena man chevere el Post


oscars comento...
el dia 26/06/2012 a las 16:05

Buen Post
Manuel comento...
el dia 09/07/2012 a las 10:13

Muy Buen Aporte man... Muchas Gracias!!! (Y)


Roman comento... Muchas gracias muy buen aporte!! Icaro comento...
el dia 25/07/2012 a las 13:05 el dia 25/07/2012 a las 11:35

Excelente, muhas gracias!!!! me ha sido muy til.


Marlon comento...
el dia 27/07/2012 a las 12:48

muy buen aporte!!


John comento...
el dia 11/08/2012 a las 13:00

Para Laura... http://www.youtube.com/watch?v=UqoVuxt7A1I Saludos


Mario comento...
el dia 02/10/2012 a las 13:40

Excelente tutoria, muy didactico y claro. Si tens algo al estido de este tutorial que sea manejo de bases de datos con JSF 2.0 usando NetBeans te agradecera mucho si pods enviame un proyecto como ejemplo o un Link. Saludos
Marco comento...
el dia 18/10/2012 a las 22:20

Excelente explicacion, super comoda y todo paso a paso, para los que no sabemos nada de facelets, saludos y tambien si pudieras hacerlo con primefaces seria genial. gracias.
INGRESA TU COMENTARIO

NOMBRE MAIL

http://www.compujuy.com.ar/postx.php?id=91

249 / 264

Facelets en JSF 2.0 (Netbeans 6.9)

15/12/2012

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=91

250 / 264

Comenzando con Spring MVC 3. Inyeccin de Dependencias

15/12/2012

INICIO

REGISTRATE

QUIENES SOMOS

DEJA TU MENSAJE

MAS..

Comenzando con Spring MVC 3. Inyeccin de Dependencias

ULTIMOS POSTS
Comenzando con Spring MVC 3. Inyeccin de Dependencias (1472) Compujuy 2012 (472) Facelets en JSF 2.0 (Netbeans 6.9) (5447) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2136) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4672)

Usuario: ANONIMO
LOGIN
USUARIO

CONTRASEA

Que tal amigos, con este post iniciaremos una serie de tutoriales web, emprendiendo sobre el Framework Spring MVC para Java. Comenzaremos desde lo mas bsico hasta llegar a realizar con lo que se hizo con JSF (Una tabla con datos, un CRUD sobre la misma y algo mas). En este post, como en los dems, no se dara teora de todo lo que se puede hacer con este Framework, ya que es muchsimo, sino que se ira al grano como se dice por ah, iremos directamente al cdigo, si se explicara lo que se est haciendo pero no se entrara muy en detalle, uds. lo completaran con la documentacin de la misma y dems por toda la red. Recomiendo la documentacin Oficial y algunos books com ser
http://static.springsource.org/spring/docs/2.0.x/reference/mvc.html Spring in action 2 Spring in action 3 Profesional development in Spring x

CATEGORIAS
JAVA PHP AJAX ACTUALIDAD INFORMATICA INTERES EN GENERAL .NET REDES

ULTIMOS COMENTARIOS
Pepito comento sobre PROGRAMANDO EN PHP CON NETBEANS 6.8 Ishmael comento sobre INTEGRAR EN JAVA (METODO DE SIMPSON) jose comento sobre VALIDAR DATOS CON PHP. raphaekl comento sobre CREACION DE UNA BD MYSQL EN NETBEANS 6.8 gary comento sobre AJAX CON JQUERY (PHP) Gustavo comento sobre JPA EN NETBEANS CON MYSQL Danny comento sobre COMANDOS DOS EN JAVA WATSON comento sobre VALIDACION EN JSF, VALIDANDO ENTRADA A LA TABLA DATATABLE JSF.

ULTIMOS POSTS X CATEGORIA Java!!


Comenzando con Spring MVC 3. Inyeccin de Dependencias (1472) Facelets en JSF 2.0 (Netbeans 6.9) (5447) AUTOCOMPLETAR TEXTO (AJAX) CON ICEFACES (SELECTINPUTTEXT) (2136) CARGAR TABLA DATATABLE ICEFACES MAS PAGINACION (4672) CREAR UN PROYECTO ICEFACES EN NETBEANS 6.9 (5998) CARGAR TABLA DATATABLE JSF DESDE UNA BASE DE DATOS MYSQL (6820) JPA EN NETBEANS CON MYSQL (7669) APLICAR ESTILO CSS EN JSF (9675)

Empecemos lo que se hara en este post, es explicar unos de los pilares de Spring, la In y e c c i n d e D e p e n d e n c ia s (ID), pero que es esto. Bsicamente es cuando nuestras clases dependen de otras para realizar sus tareas, esto puede traer problemas en ciertas ocaciones. Supongamos que tenemos una clase que se llama Operacin, para que esta realice su tarea necesita de otra clase denominada Cuadrado (que nos calcula el rea de un cuadrado) tal como se ve en el siguiente cdigo
1. package clases; 2. public class Operacion { 3. Cuadrado cuadrado;

4.
5.

6.
7.

8.
9.

public int resultado(){ int dato=4; int resultado; //instanciamos la clase


cuadrado = new Cuadrado();

Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)

10.
11.

//llamamos a su metodo
resultado=cuadrado.calculo(dato);

12.
13.

//realiza una operacion con lo que retorna el metodo calculo de la clase cuadrado
resultado=resultado*4; return resultado; }

14.
15.

16. }
17.

Ajax!!
AUTOCOMPLETAR TEXTO CON JQUERY (PHP) (7796) AJAX CON JQUERY (PHP) (5322) AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP) (1773) HOLA MUNDO CON AJAX. (PHP) (1202)

18. package clases;


19.

20. /** 21. * 22. * @author RAFAEL 23. */ 24. public class Cuadrado {
25.

26.
27.

28.
29.

public int calculo(int dato) { //calculamos en area de un cuadrado return (dato+dato);


}

Actualidad Informatica!!
DISPONIBLE NETBEANS 7.0 BETA (460) ORACLE SUBE EL PRECIO DE MYSQL (479) NETBEANS 7.0 (307) JAPON CON UNA MEDIA DE 61 MEGAS, PORTUGAL CON 8M Y ESPAA CON 1M (223) CLICK AQUI

30.
31.

32. }

COMPARTI ESTE SITIO

En esta caso vemos que la clase Operacin, depende de otra clase, de la clase Cuadrado, la clase operacin es la encargada de instanciarla y hacer
http://www.compujuy.com.ar/postx.php?id=93

Interes en gral.!!
251 / 264

Comenzando con Springla clase operacin es la encargada clase Cuadrado, MVC 3. Inyeccin de Dependencias

de instanciarla y hacer uso de ella, eso es la dependencia. Supongamos que en un futuro la clase operacin cambia su tarea y ya no necesita el area de una cuadrado, sino la de un circulo, entonces habr que cambiar el cdigo de la misma, hacer un new de otra clase y dems, por supuesto que en esta clase no pareciera ser tan difcil por la poca complejidad que presenta la misma, ya que son meros ejemplos practicos para llegar a entender la ID, pero en otros casos con mucha dependencia, esta tarea de cambio lleva tiempo y pueden surgir problemas en la refactorizacin. Spring lo que hace con la ID, es que su componente, el CONTENEDOR, sea el encargado de inyectar las dependencias de los objetos, en ves de que ellos mismos lo hagan, es decir que la dependencia de cada objeto depende del CONTENEDOR. Como seria en el caso de la clase operacin, esta en ningn momento hara un cuadrado = new Cuadrado(); sino que el CONTENEDOR es el encargado de realizar esa inyeccin de dependencias, por lo que si en un futuro cambia esa dependencia, el contenedor solo se tendra que cambiar la configuracin (en este post lo realizaremos con un archivo XML). Spring coloca las clases bsicas de su contenedor de para ID en dos paquetes:
org.springframework.beans org.springframework.context

Interes en gral.!!
Compujuy 2012 (472) VERIFICAR COMPATIBILIDAD EN LOS NAVEGADORES (523) LOS 10 VIDEOS MAS VISTOS DEL 2010 DE YOUTUBE (791) CREATIVO Y DIVERTIDO VIDEO SOBRE MICROSOFT .NET VS. JAVA (581) CHAT FACEBOOK EN MSN 2011 DE MICROSOFT (269) TODOS CONTRA IPAD DE APPLE (208) FACEBOOK PRESENTA TRAILER DE SU FILM (184)

15/12/2012

FEEDS RSS

.Net!! Redes!! POSTS MAS VISTOS Tops!!


AUTOCOMPLETANDO TEXTO CON JQUERY (PHP) AJAX CON JQUERY (PHP) VALOR DE UNA FUNCION MATEMATICA EN JAVA HOLA MUNDO WEB (2) CON JSF (JAVA) COMANDOS DOS EN JAVA AUTOCOMPLETAR TEXTO CON SCRIPTACULOUS (PHP)

CONOCE JUJUY!!

Map

Satellite

Hybrid

Estos paquetes contienen dos interfaces que son las que realizan la tarea de la instanciacin de objetos. La primera es "org.springframework.beans.factory.BeanFactory", que proporciona un mecanismo de configuracin avanzada capaz de manejar cualquier tipo de objeto. Adems proporciona una sub-interface de esta ltima, "org.springframework.context.ApplicationContext", la cual agrega una integracin ms fcil con algunas de las caractersticas ms interesantes de Spring, como su mdulo de Programacin Orientada a Aspectos, manejo de recursos de mensajes (para la internacionalizacin), publicacin de eventos, y contextos especficos para ciertas capas de aplicaciones (como aplicaciones web), entre otras. "BeanFactory" proporciona el framework de configuracin y la funcionalidad bsica, mientras que "ApplicationContext" agrega ms funcionalidad especfica para ciertos productos empresariales. Ambas interfaces representan contenedores de beans, solo que de tipos distintos. "BeanFactory" representa las fbricas de beans y son el tipo de contenedor ms simple. Este proporciona el soporte bsico para DI. "ApplicationContext" representa... el contexto de la aplicacin, estos estn construidos con las mismas nociones de las fbricas de beans, pero proporcionan a la aplicacin servicios adicionales. Nosotros trabajaremos con ApplicationContext, BeanFactory es para aplicaciones sencillas, para tomar todas las ventajas que nos puede proporcionar Spring utilizamos ApplicationContext. Manos a la Obra Antes que nada recordamos que utilizamos para los posts:
Netbeans 7.1.1 (El ide ya viene incorporado con las libreras de Spring)

50 mi Map data 2012 - Terms of Use 100 km

Deciembre 2012
Do Lu Ma Mi Ju Vi Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Iremos al cdigo para entender mejor esto. Abrimos el netbeans y creamos nuestro primer Proyecto

http://www.compujuy.com.ar/postx.php?id=93

252 / 264

Comenzando con Spring MVC 3. Inyeccin de Dependencias

15/12/2012

Elegimos aplicacin Java

Le damos el nombre, en este caso Inyeccin de Dependencias

Bien hasta ahora tenemos creado un simple proyecto Java. Lo que haremos ahora es agregar las Librera de Spring 3.x, para hacer uso de la misma

Para ello le damos click derecho sobre Bibliotecas como lo muestra la imagen, luego el Agregar Biblioteca En la ventana buscamos Spring Framework 3.0.6 y le damos click en Aadir biblioteca

http://www.compujuy.com.ar/postx.php?id=93

253 / 264

Comenzando con Spring MVC 3. Inyeccin de Dependencias

15/12/2012

Listo ya tenemos nuestro proyecto con las libreras necesarias para hacer funcionar Spring sobre una aplicacin Java. El arbol del proyecto queda de la siguiente manera

A continuacin crearemos una interfaz. Es necesario aclarar que Spring toma mucha potencia en el uso de Interfaces, la mayora de nuestro cdigo estar en clases que implementaran una interfaz. Bien le damos click derecho sobre Paquetes de fuentes-> nuevo-> Java Interface

http://www.compujuy.com.ar/postx.php?id=93

254 / 264

Comenzando con Spring MVC 3. Inyeccin de Dependencias

15/12/2012

En nombre: Operacion (el nombre de la Interface) Paquete: Clases (El paquete en donde estar la clase) Nuestra interface Operacin tendr el siguiente cdigo, con un solo mtodo calculo, que dependiendo su implementacin retornara un resultado
1.

2. package Clases;
3.

4. public interface Operacion {


5.

6.
7. }

public int calculo(int dato);

Ahora crearemos nuestra 2 clases Cuadrado y Circulo, que sern implentaciones de nuestra interface Operacin Le damos click derecho sobre Paquetes de fuentes-> nuevo-> Java Class

En nombre: Cuadrado (el nombre de la clase) Paquete: Clases (El paquete en donde estar la clase) El cdigo de nuestra clase Cuadrado ser el siguiente, en esta clase solo se calcula el area de un cuadrado, segn lo que tenga dato
http://www.compujuy.com.ar/postx.php?id=93 255 / 264

Comenzando con Spring MVC 3. Inyeccin de Dependencias

15/12/2012

1. package Clases;

2.
3. public class Cuadrado implements Operacion{

4.
5.

6.
7.

public int calculo(int lado) { //calculamos en area de un cuadrado return (dato + dato);
}

8.
9. }

Ahora de la misma manera creamos la clase Circulo, en el mismo paquete, pero con el siguiente cdigo, aqu tambin se calcula el area pero de un circulo, al resultado se lo redondea a entero:
1. package Clases;

2.
3. public class Circulo implements Operacion{

4.
5.

6.
7.

public int calculo(int radio){ return Math.round((float)(3.14*(radio*radio)));


}

8. }

Bien ya tenemos la interface y nuestra 2 clases que implementan la interface Operacin, el rbol del proyecto queda de la siguiente manera

Bien ahora el siguiente paso es crear nuestro archivo de configuracin ApplicacionContext.xml Este archivo ser nuestro contenedor de beans Spring, recordar que estos beans no son los mismos que los javabeans, sino que son beans de Spring. En este archivo de configuracin crearemos los beans a utilizar en la aplicacin, definimos su dependencia (la ID), el cableado (wiring) que seria la relacin entre las mismas y dems cosas que iremos viendo el post posteriores. Bien manos a la obra con el archivo de configuracin, le damos click derecho sobre Paquetes de fuentes-> nuevo-> Otro (en mi caso)

Luego en esta ventana Otros y luego en el otro panel Archivo XML de Configuracin Spring

http://www.compujuy.com.ar/postx.php?id=93

256 / 264

Comenzando con Spring MVC 3. Inyeccin de Dependencias

15/12/2012

Luego le damos el nombre ApplicationContext

Entonces nos queda En nombre: ApplicationContext (el nombre del archivo) Paquete: src (El paquete predeterminado) Luego en siguiente En la ventana podemos elegir algn espacios de nombres(en esta caso no usaremos ninguno de ellos, sino los que ya viene por defecto), le damos en terminar

Entonces el rbol del proyecto nos queda de la siguiente manera

http://www.compujuy.com.ar/postx.php?id=93

257 / 264

Comenzando con Spring MVC 3. Inyeccin de Dependencias

15/12/2012

A nuestro archivo ApplicationContext.xml le agregamos la siguiente lnea


<bean id="operacion" class="Clases.Cuadrado" />

Entonces queda de la siguiente manera


<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="operacion" class="Clases.Cuadrado" /> </beans>

Bien, en la lnea agregada


<bean id="operacion" class="Clases.Cuadrado" />

Lo que estamos haciendo es agregar nuestro primer bean al contenedor de Spring Tiene las siguientes propiedades Id: identificacin nico del beans Class: la clase a la cual hace referencia el bean, en este caso a Cuadrado del paquete clases Para ver mas en detalles sobre los tags y propiedades de los mismos nos podemos remitir a la documentacin oficial de Spring. Ahora haremos uso del ApplicationContext.xml, osea del contenedor de beans de Spring. Haremos que este sea el que instancie la clase y no nosotros en el cdigo de una clase. Para ello abrimos nuestro archivo InyeccionDependencia.java y agregamos el siguiente cdigo
package inyecciondependencia; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import Clases.Operacion;

public class InyeccionDependencia { /** * @param args the command line arguments */ public static void main(String[] args) { //hacemos uso de ApplicationContext //lo instanciamos a travez de ClassPathXmlApplicationContext (un archivo que se encuentra en el classpath) //le pasamos como parametro el nombre del archivo de configuracion creado
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");

//a Operacion le pasamos una instancia ya creada por //applicationContext.getBean("operacion", Operacion.class);


Operacion operacion = applicationContext.getBean("operacion", Operacion.class);

//una vez instanciada operacion podemos hacer uso de sus metodos System.out.println("El valor del area es " +
operacion.calculo(4)); } }

http://www.compujuy.com.ar/postx.php?id=93

258 / 264

Comenzando con Spring MVC 3. Inyeccin de Dependencias

15/12/2012

Bien las lneas estn comentadas de todos modos aclaramos que: ApplicationContext: es la interface de la cual hacemos uso para instanciar beans. ClassPathXmlApplicationContext("ApplicationContext.xml") : ApplicationContext es instanciada a travez de esta, con el parmetro ApplicationContext.xml que es el archivo de configuracin creado. Una vez instanciado atravez de applicationContext.getBean, obtenemos una instancia de Operacin, sin realizar ningun new, y que tiene 2 parametros operacin: que es el nombre del bean declarado en el archivos de config. ApplicationContext.xml Operacion.class : que es el tipo de clase que nos tiene que devolver el mtodo getBean de applicationContext. Bien estamos en condiciones de hacer correr nuestro primer proyecto Spring Le damos F6 o cualquiera de las otras formas para correr nuestro proyecto y obtenemos(click derecho sobre el proyecto y luego run, o sobre el icono de la barra de herramientas)

El valor del area es 8, previo a algunos mensajes que nos muestra Spring Bien con esto vimos que en ningn momento nosotros realizamos un Cuadrado = new Cuadrado(4); Sino que Spring lo hace por nosotros. Ahora bien supongamos que nos queremos calcular el area del cuadrado, sino la de un circulo. Solamente tenemos que cambiar nuestro archivo de configuracin ApplicationContext.xml Cambiamos la siguiente lnea <bean id="operacion" class="Clases.Circulo" /> El archivo completo nos queda de la siguiente manera
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="operacion" class="Clases.Circulo" /> </beans>

Corremos el proyecto y el resultado es para un circulo de radio 4

Notemos que ahora hacemos uso de la clase Circulo, en ningn momento tocamos la clase, ni instanciamos nosotros los objetos, sino que lo hace Spring. Las dependencias las definimos en el archivo de config. ApplicationContext.xml. Quizs para algunos no quede claro aun esto, a continuacin extenderemos el ejemplo realizado. Ahora supongamos que tenemos una clase Servicio.java, que hace uso de
http://www.compujuy.com.ar/postx.php?id=93 259 / 264

Comenzando con Spring MVC 3. Inyeccin de una clase Servicio.java, Ahora supongamos que tenemos Dependencias

que hace uso de la interface Operacin Y esta clase Servicio realiza unos clculos extras aparte de necesitar el area de un cuadrado o circulo. Antes que nada aclararemos que podemos hacer la Inyeccion de Dependencias de 2 maneras
ID mediante constructor ID por setter

15/12/2012

En nuestro ejemplo anterior en las implementaciones no usamos ningn constructor. Para nuestra nueva clase servicio incluiremos un constructor. Quizas en el ejemplo anterior se preguntaron Si Spring instancia la clase por nosotros, en caso de que tenga un constructor, como le pasamos el o los parmetros? Pues bien la rta. es mediante el archivos de config. ApplicationContext.xml, para ello contamos con los tags necesarios para realizar la ID mediante constructores.
ID mediante Constructores

Bien creamos nuestra clase Servicio, como lo hicimos anteriormente con las dems pero con los sig. datos: En nombre: Servicio (el nombre de la clase) Paquete: Clases (El paquete en donde estar la clase) El cdigo de la clase es el siguiente
package Clases;

public class Servicios { private Operacion operacion; public Servicios(Operacion operacion) { this.operacion = operacion;
}

public double consultaResultado(){ double resultado; // a resultado le pasamos lo q nos devuelve el metodo calculo de operacion resultado=this.operacion.calculo(4); //con los q nos pasa resultado realizamo algo (en este caso le multiplicamos E)
resultado=resultado +(Math.E);

//retornamos resultado return resultado;


} }

Bien ahora tenemos nuestra clase Servicio, si observamos tenemos un constructor en la misma, en la cual se pasa como parmetro un objeto de la clase Operacin, ahora en nuestro ApplicationContext.xml tenemos que declara este bean declarando que tiene un constructor y pasndole un parmetro. Abrimos nuestro ApplicationContext.xml y aadimos las siguientes lneas
<bean id="servicio" class="Clases.Servicios"> <constructor-arg ref="operacion" /> </bean> Entonces nuestro archivo de config. Spring queda <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="operacion" class="Clases.Circulo" /> <bean id="servicio" class="Clases.Servicios"> <constructor-arg ref="operacion" /> </bean> </beans>

En donde declaramos otro bean de id servicio y que hace referencia a la clase Servicio del paquete Clases. Observamos que el tag del bean no se autocierra, ya que necesitamos incorporar dentro un hijo que seria el contructor. El tag <constructor-arg /> es el tag que nos permite indicar que nuestra clase es instanciada mediante un constructor. Como propiedad tenemos ref=operacion , osea estamos diciendo que el parmetro lo pasamos
http://www.compujuy.com.ar/postx.php?id=93 260 / 264

Comenzando con Spring,MVC 3. Inyeccin de diciendo que el parmetro lo pasamos ref=operacion osea estamos Dependencias

15/12/2012

como referencia y es operacin, que es nuestra interface que esta implementada mediante la clase Circulo. En caso de tener mas parmetros para el constructor hacemos uso de la propiedad index, tambin contamos con la propiedad type para indicar el tipo de dato que pasaremos. La imagen nos muestra una observacin con flechas.

Bien ya tenemos nuestro contexto definido con sus propios beans, ahora modificamos InyeccionDependencia.java, queda de la siguiente manera
package inyecciondependencia; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import Clases.Servicios;

public class InyeccionDependencia { /** * @param args the command line arguments */ public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("ApplicationContext.xml"); Servicios servicio = applicationContext.getBean("servicio", Servicios.class); System.out.println("El valor del area es " + servicio.consultaResultado()); } }

Bien observamos que ahora ya no pedimos una instancia de Operacin, sino de Servicio, y servicio es la encargada de hacer uso de Operacin, hace uso de Operacin que es implentada mediante Circulo porque asi lo indicamos en el archivo de config. ApplicacionContext.xml. El arbol des proyecto queda de la siguiente manera

Corremos el proyecto y observamos la salida

http://www.compujuy.com.ar/postx.php?id=93

261 / 264

Comenzando con Spring MVC 3. Inyeccin de Dependencias

15/12/2012

Observamos un numero real porque asi lo hicimos en la clase Servicio. Bien ahora supongamos que Servicio no necesita que Operacin le pase el area de un Circulo, sino la de un cuadrado, lo nico que hacemos es realizar una implementacin de la interface Operacin que nos calcule el rea de un cuadrado (en este caso ya la tenemos) y de ah modificar tan solamente el archivo de config. ApplicacionContext.xml. Supongamos este caso y modificamos el archivo de config. Modificamos la lnea <bean id="operacion" class="Clases.Cuadrado" /> Y nos queda
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="operacion" class="Clases.Cuadrado" /> <bean id="servicio" class="Clases.Servicios"> <constructor-arg ref="operacion" /> </bean> </beans>

El resultado es entonces Con esto damos cuenta de que nosotros no tocamos en ningn momento nuestras clases, es decir no hay acoplamiento extremo, las dependencias la podemos manejar con un archivo de configuracin, en este caso Spring lo hace por nosotros. Bien para terminar con este sencillo post, realizaremos la ID pero por setter.
ID mediante Setter

Primero lo que haremos es quitar el parmetro que tiene el constructor de la clase Servicios Luego haremos un setter de la clase Operacin, entonces la clase Servicio queda asi
package Clases;

public class Servicios { private Operacion operacion; public Servicios() {


}

public double consultaResultado() { double resultado; // a resultado le pasamos lo q nos devuelve el metodo calculo de operacion resultado = this.operacion.calculo(4); //con los q nos pasa resultado realizamo algo (en este caso le multiplicamos E)
resultado = resultado + (Math.E);

//retornamos resultado return resultado;


}

public void setOperacion(Operacion operacion) { this.operacion = operacion;


} }

Como haremos la ID por setter, incluimos un setter de Operacin, y de paso quitamos los parmetros del constructor Ahora modificamos la lnea en donde declarbamos nuestro constructor en el archivo de config., por la sig. lnea <property name="operacion" ref="operacion" /> ApplicacionContext.xml nos queda asi entonces
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.compujuy.com.ar/postx.php?id=93 262 / 264

Comenzando con Spring MVC 3. Inyeccin de Dependencias

15/12/2012

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="operacion" class="Clases.Cuadrado" /> <bean id="servicio" class="Clases.Servicios"> <property name="operacion" ref="operacion" /> </bean> </beans>

En el tag < property /> indicamos que queremos modificar una propiedad de la clase Servicios En este caso la propiedad tiene el nombre de operacin (name="operacion"), y hace referencia al bean operacin que esta declarado una lnea antes. Con esto hacemos ID pero por setter y ya no por constructor, es decir Spring instancia nuestra clase Servicios y de paso settea nuestra propiedad operacin, osea Spring hace lo siguiente
Servicios sevicio= new Servicios(); Operacion operacion= new Cuadrado(); servicio1.setOperacion(operacion);

y nos devuelve a nosotros un bean ya instanciado y seteado. Corremos el proyecto y el resultado es el mismo

Bien por razones de tpo. y dems, dejamos aqu este primer post sobre Spring. Hemos tratado de entender unos de los pilares de Spring, la inyeccin de dependencias, espero haber podido hacerlo. Pronto vendrn mas tutos sobre Spring, espero sus comentarios. Saludos

Proximo post HOLA MUNDO 1 EN SPRING MVC

pepe comento...

el dia 18/06/2012 a las 11:57

Muchas gracias por la documentacin


josetaveras comento...
el dia 31/10/2012 a las 19:17

Me gusto el tutorial. muy bien explicado. Gracias


jota comento...
el dia 13/11/2012 a las 14:43

Q pas con el siguiente POST ?


INGRESA TU COMENTARIO

NOMBRE MAIL

http://www.compujuy.com.ar/postx.php?id=93

263 / 264

Comenzando con Spring MVC 3. Inyeccin de Dependencias

15/12/2012

1500

Caracteres restantes Ingresa los caracteres de la imagen


ENVIAR

COMPUJUY- Idea y creacion de Ramos Rafael Aldo- PALPALA-JUJUY- ARGENTINA

http://www.compujuy.com.ar/postx.php?id=93

264 / 264

You might also like