DATATABLE-JSF

MODIFICAR Y ELIMINAR FILAS DE UN TABLA DATATABLE JSF Luego de unas pequeñas vacaciones retornamos a los posts, en esta

Views 142 Downloads 1 File size 538KB

Report DMCA / Copyright

DOWNLOAD FILE

Citation preview

MODIFICAR Y ELIMINAR FILAS DE UN TABLA DATATABLE JSF

Luego de unas pequeñas vacaciones retornamos a los posts, en esta ocasión continuaremos con el post anterior sobre JSF, en la cual seleccionábamos una fila de un datatable jsf y tales datos lo mostrábamos 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

En el post anterior teníamos nuestra clase java llamada “lista”, lo cual es nuestro backbean que trabaja con nuestro index.xhtml, en esta clase seencuentran los métodos 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 continuación tenemos el código 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 lista= new ArrayList(){};

9.

private Persona persona;

10.

private int index;

11.

private

12.

public Lista() {

13.

HtmlDataTable tabla;

persona= new Persona();

14.

}

15. public void cargarLista(){ 16. persona= new Persona(txtNombre, txtApellido, txtDireccion); 17. this.lista.add(persona); 18. 19. } 20. public void seleccionLista(){ 21.

persona=(Persona) tabla.getRowData();

22.

this.index=tabla.getRowIndex();

23.

this.txtApellido=persona.getApellido();

24.

this.txtNombre=persona.getNombre();

25.

this.txtDireccion=persona.getDireccion();

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. 42.

return tabla; }

43. 44.

public void setTabla(HtmlDataTable tabla) {

45. 46.

this.tabla = tabla; }

47. 48.

public ArrayList getLista() {

49.

return lista;

50.

}

51.

public void setLista(ArrayList lista) {

52.

this.lista = lista;

53.

}

54.

public String getTxtApellido() {

55.

return txtApellido;

56.

}

57.

public void setTxtApellido(String txtApellido) {

58.

this.txtApellido = txtApellido;

59.

}

60.

public String getTxtDireccion() {

61.

return txtDireccion;

62.

}

63.

public void setTxtDireccion(String txtDireccion) {

64.

this.txtDireccion = txtDireccion;

65.

}

66.

public String getTxtNombre() {

67.

return txtNombre;

68.

}

69.

public void setTxtNombre(String txtNombre) {

70. 71.

this.txtNombre = txtNombre; }

72. }

En esta clase se encuentran los dos nuevos métodos 1. public void eliminarLista(){ 2.

this.lista.remove(persona);

3. } 4. public void modificarLista(){ 5.

persona.setNombre(this.txtNombre);

6.

persona.setApellido(this.txtApellido);

7.

persona.setDireccion(this.txtDireccion);

8.

try{

9.

this.lista.set(index, persona);

10.

}catch(Exception e){

11. 12.

System.out.println(e); }

13. }

En el método eliminarLista() solamente utilizamos el método remove del ArrayList (del tipo persona) lista, para eliminar un objeto persona. En el método modificarLista(), seteamos las propiedades del objeto persona con los valores introducidos en los campos de texto, luego utilizamos el método set del ArrayList para modificar un objetos de la lista, al método 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 método seleccionLista(), atraves del métodogetRowIndex(). Ahora modificaremos nuestro index.xhtml, en la cual le agregaremos un botón que nos permitirá modificar una fila seleccionada, a continuación el código

1. 2.

6.

Ejemplo JSF

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.

SELECCION

35.

36.

37.

38.

39.





40.

41.

Nombre

42.





43.

Apellido

44.





45.

Direccion

46.





47.

48.

< /h:commandButton>

49.

50.

51.

52.

Aqui le agregamos la siguiente linea

1.

Que es nuestro boton, con el evento action apuntando al metodo modificarLista() de la clase lista. Nuestro facesconfig.xml no tiene modificación y sigue de la siguiente manera 1. 2. 3.

7. 8.

Lista

9.

lista

10.

session

11. 12. 13.

Bien estamos en condiciones de ejecutar nuestro index.xhtml

Vemos que nos muestra nuestro botón para poder modificar. Agregamos registros y seleccionamos uno

Modificamos los campos de entrada y pulsamos sobre modificar y observamos que se produce la modificación

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

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