Mantenimiento de Articulo Alumnos jsf
Mantenimiento de Articulo de alumnos
En esta primera ejemplo mostrar dataTable para mostrar registros para poder manipular información
1. Ambiente de desarrollo
- JDK v1.6.0.27
- Netbeans v7.1.2
- MySql v5.1.61
- Apache tomcat 7
Crear una clase llamado Alumno
public class Alumno {
private Integer id;
private String dni;
private String paterno;
private String materno;
private String nombres;
private String direccion;
private String telefono;
private String correo;
public Alumno() {
}
Crear el get y set
Crear una clase llamado
AlumnoDao
public class AlumnoDao {
private SqlSessionFactory sqlSessionFactory;
public AlumnoDao() {
sqlSessionFactory = MyBatisConnectionFactory.getSqlSessionFactory();
}
public void insertar (Alumno alumno){
SqlSession session = sqlSessionFactory.openSession();
try {
session.insert("Alumno.insertar", alumno);
session.commit();
} catch
(Exception e) {
System.out.println("Error
en AlumnoDao>insertar: " +
e.getMessage());
session.rollback();
}finally{
session.close();
}
}
public void actualizar (Alumno alumno){
SqlSession session = sqlSessionFactory.openSession();
try {
session.insert("Alumno.actualizar", alumno);
session.commit();
} catch
(Exception e) {
System.out.println("Error
en AlumnoDao>actualizar: " +
e.getMessage());
session.rollback();
}finally{
session.close();
}
}
public Alumno buscarPorId(Integer id) {
SqlSession session = sqlSessionFactory.openSession();
try {
Alumno alumno = session.selectOne("Alumno.buscarPorId", id);
return alumno;
} catch
(Exception e) {
System.out.println("Error
en AlumnoDao>buscarPorId: "
+ e.getMessage());
return null;
}finally{
session.close();
}
}
public List<Alumno>
buscarTodos() {
SqlSession session = sqlSessionFactory.openSession();
try {
List<Alumno>
alumnos = session.selectList("Alumno.buscarTodos");
return alumnos;
} catch (Exception e) {
System.out.println("Error
en AlumnoDao>buscarTodos: "
+ e.getMessage());
return null;
} finally
{
session.close();
}
}
public void eliminar(Integer id) {
SqlSession session = sqlSessionFactory.openSession();
try {
session.delete("Alumno.eliminar", id);
session.commit();
} catch
(Exception e) {
System.out.println("Error
en AlumnoDao>eliminar: "+e.getMessage());
session.rollback();
} finally
{
session.close();
}
}
}
Crear una clase llamado
AlumnoBean
public class AlumnoBean implements Serializable {
private static final long serialVersionUID = 1L;
private Alumno alumno;
private List<Alumno> alumnos;
private AlumnoDao alumnoDao;
public AlumnoBean() {
alumno = new Alumno();
}
public Alumno getAlumno() {
return alumno;
}
public void setAlumno(Alumno alumno) {
this.alumno = alumno;
}
public List<Alumno> getAlumnos() {
alumnoDao = new AlumnoDao();
alumnos = alumnoDao.buscarTodos();
return alumnos;
}
public void prepararInsertar() {
System.out.println("preparar
Insertar");
alumno = new Alumno();
}
public void insertar() {
alumnoDao = new AlumnoDao();
alumnoDao.insertar(alumno);
FacesUtils.showFacesMessage("Alumno insertado exitosamente.", 3);
System.out.println("Datos
insertados");
}
public void prepararActualizar(Integer id) {
System.out.println("Dentro
Actualizar");
alumnoDao = new AlumnoDao();
alumno = alumnoDao.buscarPorId(id);
}
public void actualizar() {
System.out.println("Actualizar");
alumnoDao = new AlumnoDao();
alumnoDao.actualizar(alumno);
FacesUtils.showFacesMessage("Alumno actualizado exitosamente.", 3);
}
public void prepararEliminar(Integer id) {
System.out.println("preparar
eliminar");
alumnoDao = new AlumnoDao();
alumno = alumnoDao.buscarPorId(id);
}
public void eliminar() {
System.out.println("eliminado");
alumnoDao = new AlumnoDao();
alumnoDao.eliminar(alumno.getId());
FacesUtils.showFacesMessage("Alumno eliminado exitosamente.", 3);
}
Crear un formulario con xhtml
con nombre usuario
<h:form id="form">
<p:messages showSummary="true"
showDetail="true"/>
<p:panel id="panel"
header="Mantenimiento de Alumnos" style="margin-bottom:10px; ">
<h:panelGrid id="growlEditar"
columns="4">
<h:outputLabel style="margin-left: 5px;" id="textDni"
for="dni"
value="(*)Dni: " />
<p:inputText id="dni"
value="#{alumnoBean.alumno.dni}"
style="width:228px; margin: 10px 5px 5px 5px" required="true"
label="titulo" requiredMessage="Paterno: campo obligatorio">
<f:validateLength minimum="8"
maximum="8" />
</p:inputText>
<h:outputLabel style="margin-left: 5px;" id="textPaterno"
for="paterno" value="(*)Paterno:
" />
<p:inputText id="paterno"
value="#{alumnoBean.alumno.paterno}"
style="width:228px; margin: 10px 5px 5px 5px" required="true"
label="titulo" requiredMessage="Paterno: campo obligatorio">
<f:validateLength minimum="6"
maximum="50" />
</p:inputText>
<h:outputLabel style="margin-left: 5px;" id="textMaterno"
for="materno" value="(*)Materno:
" />
<p:inputText id="materno"
value="#{alumnoBean.alumno.materno}"
style="width:228px; margin: 10px 5px 5px 5px" required="true"
label="titulo" requiredMessage="Materno: campo obligatorio">
<f:validateLength minimum="6"
maximum="50" />
</p:inputText>
<h:outputLabel style="margin-left: 5px;" id="textNombres"
for="nombres" value="(*)Nombres: " />
<p:inputText id="nombres" value="#{alumnoBean.alumno.nombres}"
style="width:228px; margin: 10px 5px 5px 5px" required="true"
label="titulo" requiredMessage="Nombres: campo obligatorio">
<f:validateLength minimum="6"
maximum="50" />
</p:inputText>
<h:outputLabel style="margin-left: 5px;" id="textDireccion"
for="direccion" value="(*)Direccion: " />
<p:inputText id="direccion" value="#{alumnoBean.alumno.direccion}"
style="width:228px; margin: 10px 5px 5px 5px" required="true"
label="titulo" requiredMessage="Direccion: campo obligatorio">
<f:validateLength minimum="6"
maximum="50" />
</p:inputText>
<h:outputLabel style="margin-left: 5px;" id="textTelefono"
for="telefono" value="(*)telefono: " />
<p:inputText id="telefono" value="#{alumnoBean.alumno.telefono}"
style="width:228px; margin: 10px 5px 5px 5px" required="true"
label="titulo" requiredMessage="Telefono: campo obligatorio">
<f:validateLength minimum="6"
maximum="50" />
</p:inputText>
<h:outputLabel style="margin-left: 5px;" for="correo"
value="(*)Correo: " />
<p:inputText id="correo"
value="#{alumnoBean.alumno.correo}"
style="width:228px; margin: 5px 5px 10px" required="true"
validatorMessage="Correo
incorrecto" label="correo"
requiredMessage="Correo: campo
obligatorio">
<f:validateLength maximum="100"
/>
<f:validateRegex
pattern="[\w\.-]*[a-zA-Z0-9_]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]" />
</p:inputText>
</h:panelGrid>
</p:panel>
<p:commandButton style="margin-left: 10px;" value="Nuevo" update=":form"
actionListener="#{alumnoBean.limpiar}" />
<p:commandButton style="margin-left: 10px;" value="Guardar" update=":formdata"
actionListener="#{alumnoBean.insertar}"/>
<p:commandButton style="margin-left: 10px;" value="Modificar" update=":formdata"
actionListener="#{alumnoBean.actualizar}"/>
<p:separator />
<p:spacer height="20"
/>
</h:form>
<h:form id="formdata">
<p:dataTable id="dataTable" var="t"
value="#{alumnoBean.alumnos}"
emptyMessage="No
hay usuarios disponibles." paginator="true"
rows="10" paginatorPosition="bottom"
paginatorTemplate="{FirstPageLink}
{PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}
{RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,15">
<p:column headerText="Id">
<h:outputText value="#{t.id}"
/>
</p:column>
<p:column headerText="Dni">
<h:outputText value="#{t.dni}"
/>
</p:column>
<p:column headerText="Paterno"
style="width:25%;">
<h:outputText value="#{t.paterno}"
/>
</p:column>
<p:column headerText="Materno"
style="width:25%;">
<h:outputText value="#{t.materno}"
/>
</p:column>
<p:column headerText="Nombre"
style="width:25%;">
<h:outputText value="#{t.nombres}"
/>
</p:column>
<p:column headerText="Direccion"
style="width:75%;">
<h:outputText value="#{t.direccion}"
/>
</p:column>
<p:column headerText="Telefono"
style="width:75%;">
<h:outputText value="#{t.telefono}"
/>
</p:column>
<p:column headerText="Correo"
style="width:75%;">
<h:outputText value="#{t.correo}"
/>
</p:column>
<p:column headerText="M"
style="width:75%; text-align:center;">
<p:commandButton update=":form:growlEditar"
actionListener="#{alumnoBean.prepararActualizar(t.id)}"
title="Editar" icon="ui-icon-pencil"
/>
</p:column>
<p:column headerText="M"
style="width:5%; text-align:center;">
<p:commandButton actionListener="#{alumnoBean.prepararEliminar(t.id)}"
oncomplete="dlgEliminar.show();" title="Eliminar"
icon="ui-icon-close">
</p:commandButton>
</p:column>
</p:dataTable>
</h:form>
<h:form id="formEliminar">
<p:growl id="growlEliminar"
sticky="true" />
<p:confirmDialog id="dlgEliminar"
message="¿Desea
eliminar este Alumno?" header="Eliminar
Integrante"
severity="alert" widgetVar="dlgEliminar">
<p:commandButton value="Eliminar"
update=":formdata:dataTable
growlEliminar, dlgEliminar"
actionListener="#{alumnoBean.eliminar}"
oncomplete="dlgEliminar.hide()" icon="icon-delete"
/>
<p:commandButton value="Cancelar"
update=":formdata:dataTable"
oncomplete="dlgEliminar.hide()" icon="icon-cancel" />
</p:confirmDialog>
</h:form>
Resultado
Mu bueno loco, pero como es el modelo de la base de datos?
ResponderEliminarcrear tabla con esas estructuras una tabla
Eliminarbuen aporte men
ResponderEliminarel diseño del datagridview .. tbm se puede apliucar para visual o c#
ResponderEliminarla verdad no lo se esto es java no lo he probado
Eliminarexecelente aporte .nois ayudarias si subes mas proyectos como estos ..
Eliminarutilizas algun framework para el jsf?¿ o es JSF limpio
Este comentario ha sido eliminado por el autor.
EliminarHuber Maca, el framework que utiliza Erasmo, es primefaces que es compatible y muy utilizado con JSF, para mapeo de la base de datos en este caso de proyectos utiliza MYBatis, por que el sistema trabaja con sesiones......muy interesante ejemplo.......saludos
ResponderEliminaresta freza men también me gusta
ResponderEliminarpodrias subir el codigo funtente por favor
ResponderEliminarporfavor sube el codigo fuente :)
ResponderEliminar