Professional Documents
Culture Documents
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
08
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
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
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
http://www.compujuy.com.ar/index.php?pagAct=1&pagCat=1
20
Posteado por :
rafa
Interes en gral.!!
1 / 264
COMPUJUY
20
15/12/2012
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.
CONOCE JUJUY!!
Map
Satellite
Hybrid
03
Posteado por :
rafa
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
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
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
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.....
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
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
Posteado por :
rafa
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
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
http://www.compujuy.com.ar/index.php?pagAct=2&pagCat=1
10
Posteado por :
rafa
Interes en gral.!!
4 / 264
COMPUJUY
10
15/12/2012
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.....
CONOCE JUJUY!!
Satellite
Hybrid
23
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)
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
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
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
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
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:
http://www.compujuy.com.ar/index.php?pagAct=2&pagCat=1
6 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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.
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() {
}
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
Interes en gral.!!
7 / 264
http://www.compujuy.com.ar/postx.php?id=81
15/12/2012
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
CONOCE JUJUY!!
Map
Satellite
Hybrid
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() {
}
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. }
http://www.compujuy.com.ar/postx.php?id=81
9 / 264
15/12/2012
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
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
rafael_ortega comento...
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...
ESTE TUTOTIAL ESTA SUPER BUENO.. ENVIAMELO POR FAVOR NECESITO HACER UN EJEMPLO PARECIDO A TUYO ...GRACIAS
15/12/2012
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...
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
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
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
15/12/2012
Maris comento...
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
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
http://www.compujuy.com.ar/postx.php?id=81
13 / 264
15/12/2012
http://www.compujuy.com.ar/postx.php?id=81
14 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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);
Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)
18.
19. }
22.
23.
24.
25.
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
Interes en gral.!!
15 / 264
15/12/2012
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
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
CONOCE JUJUY!!
66.
67.
Map
Satellite
Hybrid
68.
69.
70.
71.
72. }
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
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>
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'?>
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
15/12/2012
Modificamos los campos de entrada y pulsamos sobre modificar y observamos que se produce la modificacin
http://www.compujuy.com.ar/postx.php?id=82
18 / 264
15/12/2012
Bueno eso es todo por este sencillo post, disculpen si hay errores, hasta pronto
fabricio comento...
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...
Que tal Fabricio, esa es la idea tambien, dentro de uns posts haremos lo que esas pidiendo,, saludos
Holger comento...
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
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...
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
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
http://www.compujuy.com.ar/postx.php?id=82
20 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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.
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!!
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
Interes en gral.!!
21 / 264
15/12/2012
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
CONOCE JUJUY!!
Map
Satellite
Hybrid
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
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
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
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
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.
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.
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.
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
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.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
http://www.compujuy.com.ar/postx.php?id=83
15/12/2012
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
En esta clase agregamos nuevas propiedades a la clase con respecto al ejemplo anterior:
1.
2.
3.
4.
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
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
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
http://www.compujuy.com.ar/postx.php?id=83
28 / 264
15/12/2012
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
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.LongConverter.LONG
javax.faces.converter.NumberConverter.CURRENCY
javax.faces.converter.NumberConverter.PERCENT
http://www.compujuy.com.ar/postx.php?id=83
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
{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}
javax.faces.validator.DoubleRangeValidator.TYPE
javax.faces.validator.LengthValidator.MAXIMUM
javax.faces.validator.LongRangeValidator.MAXIMUM
http://www.compujuy.com.ar/postx.php?id=83
31 / 264
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
javax.faces.validator.LongRangeValidator.NOT_IN_RANGE
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'?>
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
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
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
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...
Perfecto, estoy siguiendo al pie de la letra, todo OK..!! Esperando el siguiente post.....
Mary comento...
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
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
http://www.compujuy.com.ar/postx.php?id=83
36 / 264
COMPUJUY
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
31
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.....
29
Posteado por :
rafa
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
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
http://www.compujuy.com.ar/index.php?pagAct=3&pagCat=1
08
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.
CONOCE JUJUY!!
Map
Satellite
Hybrid
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
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.....
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
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
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
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
CONOCE JUJUY!!
Map
Satellite
Hybrid
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
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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
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
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
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
CONOCE JUJUY!!
Map
Satellite
Hybrid
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
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
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
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...
Pero no indicas como usar el package en una aplicacion desktop.... por lo demas muy bien.
INGRESA TU COMENTARIO
NOMBRE MAIL
1500
http://www.compujuy.com.ar/postx.php?id=39
49 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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
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
http://www.compujuy.com.ar/postx.php?id=40
50 / 264
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
CONOCE JUJUY!!
Map
Satellite
Hybrid
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
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
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
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
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
15/12/2012
Espero que haya servido esta simple introduccin a java con netbeans. SALUDOS
marcela comento...
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
NOMBRE MAIL
http://www.compujuy.com.ar/postx.php?id=40 55 / 264
15/12/2012
1500
http://www.compujuy.com.ar/postx.php?id=40
56 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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
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
Interes en gral.!!
http://www.compujuy.com.ar/postx.php?id=41 57 / 264
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
CONOCE JUJUY!!
Map
Satellite
Hybrid
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
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
Ahora le damos click derecho sobre tablas y le damos con el izquierdo en ejecutar comando
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
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
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
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...
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
62 / 264
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
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
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
15/12/2012
1500
http://www.compujuy.com.ar/postx.php?id=41
64 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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.
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
Interes en gral.!!
http://www.compujuy.com.ar/postx.php?id=47 65 / 264
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
CONOCE JUJUY!!
Map
Satellite
Hybrid
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
http://www.compujuy.com.ar/postx.php?id=47
66 / 264
15/12/2012
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
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
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
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.
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
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
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
http://www.compujuy.com.ar/postx.php?id=47
71 / 264
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
//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
15/12/2012
18.
control.create(empleado);
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
15/12/2012
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");
http://www.compujuy.com.ar/postx.php?id=47
74 / 264
15/12/2012
http://www.compujuy.com.ar/postx.php?id=47
75 / 264
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.
//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");
}
http://www.compujuy.com.ar/postx.php?id=47
76 / 264
15/12/2012
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
15/12/2012
cristian comento...
INTERESANTE.
Leonardo comento...
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
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
15/12/2012
NOMBRE MAIL
1500
http://www.compujuy.com.ar/postx.php?id=47
80 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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.
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!!
http://www.compujuy.com.ar/postx.php?id=54
81 / 264
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
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
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)
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
http://www.compujuy.com.ar/postx.php?id=54
82 / 264
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
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
http://www.compujuy.com.ar/postx.php?id=54
84 / 264
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...
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...
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
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...
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...
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...
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
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
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
http://www.compujuy.com.ar/postx.php?id=54
88 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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.
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
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
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
CONOCE JUJUY!!
Map
Satellite
Hybrid
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
15/12/2012
eldba comento...
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...
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>
pepe comento...
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
http://www.compujuy.com.ar/postx.php?id=55
91 / 264
15/12/2012
http://www.compujuy.com.ar/postx.php?id=55
92 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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.
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
Interes en gral.!!
93 / 264
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
CONOCE JUJUY!!
Map
Satellite
Hybrid
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
http://www.compujuy.com.ar/postx.php?id=56
95 / 264
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;
}
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
15/12/2012
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
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
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
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
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...
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
15/12/2012
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
NOMBRE MAIL
1500
http://www.compujuy.com.ar/postx.php?id=56
101 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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
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
Interes en gral.!!
102 / 264
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!!
Map
Satellite
Hybrid
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
15/12/2012
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.
private String mensaje="hola mundo"; /** Creates a new instance of Beans */ public Beans() {
}
http://www.compujuy.com.ar/postx.php?id=57
104 / 264
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
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
15/12/2012
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.
en imagen
http://www.compujuy.com.ar/postx.php?id=57
106 / 264
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.....
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
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
107 / 264
15/12/2012
NOMBRE MAIL
1500
http://www.compujuy.com.ar/postx.php?id=57
108 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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.
private String mensaje; /** Creates a new instance of Beans */ public Beans() { System.out.println("sssss2222222222");
}
Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)
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
Interes en gral.!!
http://www.compujuy.com.ar/postx.php?id=61 109 / 264
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
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
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
================================== -->
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>
http://www.compujuy.com.ar/postx.php?id=61
110 / 264
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
Cristian comento...
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
15/12/2012
Martin comento...
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
http://www.compujuy.com.ar/postx.php?id=61
112 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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.
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)
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
http://www.compujuy.com.ar/postx.php?id=62
113 / 264
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
CONOCE JUJUY!!
Map
Satellite
Hybrid
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); }";
http://www.compujuy.com.ar/postx.php?id=62
114 / 264
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
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");
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
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...
Bien , pero nose si algun dia, yo en mi caso nesecitare usar esto, pero esta bien
iplazlac comento...
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...
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...
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...
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
15/12/2012
1500
http://www.compujuy.com.ar/postx.php?id=62
118 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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.
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);
}
Interes en gral.!!
119 / 264
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
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; }
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
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; }
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
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());
}
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
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
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
15/12/2012
La salida es
La salida es
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
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...
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...
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
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...
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
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
NOMBRE MAIL
1500
http://www.compujuy.com.ar/postx.php?id=67
127 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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
================================== -->
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
Interes en gral.!!
128 / 264
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
CONOCE JUJUY!!
Map
Satellite
Hybrid
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
15/12/2012
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
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......
salvador comento...
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...
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
15/12/2012
yosi comento...
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
http://www.compujuy.com.ar/postx.php?id=69
132 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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:
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!!
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
MYSQL (479) NETBEANS 7.0 (307) 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
.Net!! Redes!!
Map
CONOCE JUJUY!!
Satellite
Hybrid
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
http://www.compujuy.com.ar/postx.php?id=70
134 / 264
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:
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
15/12/2012
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
15/12/2012
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
http://www.compujuy.com.ar/postx.php?id=70
137 / 264
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
Le damos el nombre
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;
}
15/12/2012
} }
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();
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
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");
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.
gearbox comento...
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
15/12/2012
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
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
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
http://www.compujuy.com.ar/postx.php?id=70
141 / 264
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
http://www.compujuy.com.ar/postx.php?id=70
142 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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.
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. }
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=72
143 / 264
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
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. }
Map
Satellite
Hybrid
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
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
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>
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
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..
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...
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...
Alvaro comento...
excelente!
http://www.compujuy.com.ar/postx.php?id=72 146 / 264
15/12/2012
INGRESA TU COMENTARIO
NOMBRE MAIL
1500
http://www.compujuy.com.ar/postx.php?id=72
147 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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.
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
Elegimos el servidor
http://www.compujuy.com.ar/postx.php?id=79
Interes en gral.!!
148 / 264
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
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() {
}
http://www.compujuy.com.ar/postx.php?id=79
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;
}
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() {
}
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
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
http://www.compujuy.com.ar/postx.php?id=79
152 / 264
15/12/2012
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
koki comento...
es lo unico q sabes??? estudia mas
rafa comento...
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
15/12/2012
Wilfredo comento...
Hola, Muchas gracias por el ejemplo, quedo sin palabras. Saludos desde Venezuela!!!
GRAY comento...
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
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
ya tu sabesXXXXX
Luis comento...
el dia 14/07/2011 a las 15:31
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
15/12/2012
edison comento...
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
http://www.compujuy.com.ar/postx.php?id=79
155 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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.
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() {
}
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
Interes en gral.!!
156 / 264
http://www.compujuy.com.ar/postx.php?id=81
15/12/2012
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
CONOCE JUJUY!!
Map
Satellite
Hybrid
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() {
}
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. }
http://www.compujuy.com.ar/postx.php?id=81
158 / 264
15/12/2012
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
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
rafael_ortega comento...
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...
ESTE TUTOTIAL ESTA SUPER BUENO.. ENVIAMELO POR FAVOR NECESITO HACER UN EJEMPLO PARECIDO A TUYO ...GRACIAS
160 / 264
15/12/2012
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...
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
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
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
http://www.compujuy.com.ar/postx.php?id=81
161 / 264
15/12/2012
Maris comento...
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
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
http://www.compujuy.com.ar/postx.php?id=81
162 / 264
15/12/2012
http://www.compujuy.com.ar/postx.php?id=81
163 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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);
Php!!
NOMBRES DE ESPACIOS (NAMESPACE) EN PHP (527) VALIDAR DATOS CON PHP. (4995) PROGRAMANDO EN PHP CON NETBEANS 6.8 (10643)
18.
19. }
22.
23.
24.
25.
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
Interes en gral.!!
164 / 264
15/12/2012
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
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
CONOCE JUJUY!!
66.
67.
Map
Satellite
Hybrid
68.
69.
70.
71.
72. }
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
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>
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'?>
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
15/12/2012
Modificamos los campos de entrada y pulsamos sobre modificar y observamos que se produce la modificacin
http://www.compujuy.com.ar/postx.php?id=82
167 / 264
15/12/2012
Bueno eso es todo por este sencillo post, disculpen si hay errores, hasta pronto
fabricio comento...
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...
Que tal Fabricio, esa es la idea tambien, dentro de uns posts haremos lo que esas pidiendo,, saludos
Holger comento...
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
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...
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
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
http://www.compujuy.com.ar/postx.php?id=82
169 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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.
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!!
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
Interes en gral.!!
170 / 264
15/12/2012
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
CONOCE JUJUY!!
Map
Satellite
Hybrid
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
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
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
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
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.
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.
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.
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
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.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
http://www.compujuy.com.ar/postx.php?id=83
15/12/2012
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
En esta clase agregamos nuevas propiedades a la clase con respecto al ejemplo anterior:
1.
2.
3.
4.
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
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
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
http://www.compujuy.com.ar/postx.php?id=83
177 / 264
15/12/2012
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
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.LongConverter.LONG
javax.faces.converter.NumberConverter.CURRENCY
javax.faces.converter.NumberConverter.PERCENT
http://www.compujuy.com.ar/postx.php?id=83
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
{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}
javax.faces.validator.DoubleRangeValidator.TYPE
javax.faces.validator.LengthValidator.MAXIMUM
javax.faces.validator.LongRangeValidator.MAXIMUM
http://www.compujuy.com.ar/postx.php?id=83
180 / 264
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
javax.faces.validator.LongRangeValidator.NOT_IN_RANGE
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'?>
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
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
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
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...
Perfecto, estoy siguiendo al pie de la letra, todo OK..!! Esperando el siguiente post.....
Mary comento...
15/12/2012
carlos comento...
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
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
http://www.compujuy.com.ar/postx.php?id=83
185 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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.
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
Interes en gral.!!
186 / 264
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
CONOCE JUJUY!!
Map
Satellite
Hybrid
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
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. }
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
15/12/2012
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...
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
15/12/2012
Saira comento...
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
NOMBRE MAIL
1500
http://www.compujuy.com.ar/postx.php?id=84
191 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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.
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
Interes en gral.!!
192 / 264
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
Map
Satellite
Hybrid
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)
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
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
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
http://www.compujuy.com.ar/postx.php?id=85
195 / 264
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
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
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...
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
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
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
http://www.compujuy.com.ar/postx.php?id=85
199 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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.
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)
Actualidad Informatica!!
http://www.compujuy.com.ar/postx.php?id=86
200 / 264
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
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
CONOCE JUJUY!!
Map
Satellite
Hybrid
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
15/12/2012
Seleccionamos Driver Mysql JDBC y Hibernate JPA y le damos click en Aadir biblioteca
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
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
38.
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. }
56.
57.
58.
59.
60.
61.
62.
63. }
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.
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
15/12/2012
118.
119. }
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
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
166.
Las nuevas lneas estn explicadas como comentarios. Los nicos mtodos que modificamos son
cargarLista seleccionLista eliminarLista modificarLista
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
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
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...
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 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
Hola Rafa:
http://www.compujuy.com.ar/postx.php?id=86 206 / 264
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...
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
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
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
15/12/2012
INGRESA TU COMENTARIO
NOMBRE MAIL
1500
http://www.compujuy.com.ar/postx.php?id=86
208 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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.
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
http://www.compujuy.com.ar/postx.php?id=87
209 / 264
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
CONOCE JUJUY!!
Una vez descargado los archivos abrimos nuestro Netbeans 6.9 y en el menu Herrmientas->Complementos le damos click.
Map
Satellite
Hybrid
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
15/12/2012
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
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' ?>
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
15/12/2012
FABRICIO comento...
Buen post, como siempre, Felicitaciones y Gracias ..!! Saludos desde AZOGUES - ECUADOR...!!
jj comento...
el dia 08/06/2011 a las 21:12
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...
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
15/12/2012
1500
http://www.compujuy.com.ar/postx.php?id=87
214 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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
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.
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.
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.
40.
41.
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
CONOCE JUJUY!!
Map
Satellite
Hybrid
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.
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.
http://www.compujuy.com.ar/postx.php?id=88
15/12/2012
133.
return txtDireccion;
}
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
http://www.compujuy.com.ar/postx.php?id=88
15/12/2012
225.
this.sueldoBas = sueldoBas;
}
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
//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
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.
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.
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' ?>
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
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
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
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
http://www.compujuy.com.ar/postx.php?id=88
223 / 264
15/12/2012
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
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...
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
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
NOMBRE MAIL
http://www.compujuy.com.ar/postx.php?id=88
225 / 264
15/12/2012
1500
http://www.compujuy.com.ar/postx.php?id=88
226 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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
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. /**
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.
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.
22.
23.
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.
34.
35.
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
Interes en gral.!!
227 / 264
15/12/2012
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.
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();
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.
+ 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.
68.
69.
70.
71.
72.
73.
74.
75.
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
15/12/2012
83.
return personaSeleccionada;
}
84.
85.
86.
{ 87.
88.
89.
90.
91.
92.
93.
94.
95.
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' ?>
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
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
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...
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
15/12/2012
diego comento...
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
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
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...
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
15/12/2012
http://www.compujuy.com.ar/postx.php?id=89
234 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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.
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
Interes en gral.!!
235 / 264
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
CONOCE JUJUY!!
Map
Satellite
Hybrid
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=91
236 / 264
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
http://www.compujuy.com.ar/postx.php?id=91
237 / 264
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
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
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
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
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.
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.
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
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
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
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.
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
15/12/2012
De la misma manera creamos otro archivo xhtml contenido2.xhtml Nuestro rbol de proyecto se tiene que ver asi
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.
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
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>
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
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...
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
15/12/2012
Jen comento...
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
Buen Post
Manuel comento...
el dia 09/07/2012 a las 10:13
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
15/12/2012
1500
http://www.compujuy.com.ar/postx.php?id=91
250 / 264
15/12/2012
INICIO
REGISTRATE
QUIENES SOMOS
DEJA TU MENSAJE
MAS..
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.
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.
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)
20. /** 21. * 22. * @author RAFAEL 23. */ 24. public class Cuadrado {
25.
26.
27.
28.
29.
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. }
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
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)
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
15/12/2012
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
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
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.
6.
7. }
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
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.
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
15/12/2012
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
http://www.compujuy.com.ar/postx.php?id=93
257 / 264
15/12/2012
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");
//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
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>
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);
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
http://www.compujuy.com.ar/postx.php?id=93
261 / 264
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 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);
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
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
pepe comento...
NOMBRE MAIL
http://www.compujuy.com.ar/postx.php?id=93
263 / 264
15/12/2012
1500
http://www.compujuy.com.ar/postx.php?id=93
264 / 264