Ir al contenido principal

Ejemplo MVC - DAO - JPA

ControladorProducto


if(opcion.equals("delete")) {              
                int codigo = Integer.parseInt(request.getParameter("codigo"));
             
                ProductoDAO pDao = new ProductoDAO();              
             
                if (pDao.eliminarProducto(codigo)) {
                    request.setAttribute("RPTA", "Se elimini exitosamente");
                    RequestDispatcher dispatcher = request.getRequestDispatcher("listarProducto.jsp");
                    dispatcher.forward(request, response);
                } else {
                    request.setAttribute("RPTA", "No se pudo eliminar el producto, intente otra vez");
                    RequestDispatcher dispatcher = request.getRequestDispatcher("listarProducto.jsp");
                    dispatcher.forward(request, response);  
                }

////////////////////////////////////
ProductoDAO

 public boolean eliminarProducto(int codigo) {
        try {
            control.eliminarProducto(Integer.valueOf(codigo));
        } catch (Exception ex) {
            return false;
        }
        return true;
    }

//////////////////////////////////
ControladorUsuarioJPA

 public void eliminarProducto(Integer id) throws Exception {
        EntityManager em = null;
        try {
            em = getEntityManager();
            em.getTransaction().begin();
            Producto tusuario;
            try {
                tusuario = em.getReference(Producto.class, id);
                tusuario.getCodigo();
            } catch (Exception e) {
                throw new Exception(e.getMessage());
            }
            em.remove(tusuario);
            em.getTransaction().commit();
        } finally {
            if (em != null) {
                em.close();
            }
        }
    }

////////////////////////////////////
menuCabecera.jsp

<%@page import="edu.sise.modelo.Usuario"%>
<%@page language="java" session="true" %>
<br>
<div align="right"><h1>Bienvenido <%= ((Usuario)session.getAttribute("USR")).getNombres() %> </h1></div>
<br>
<div align="center">
    <table border="1">      
        <tbody>
            <tr>
                <td><a href="listarProducto.jsp">Listar Productos</a></td>
                <td><a href="registrarProducto.jsp">Registrar Producto</a></td>
                <td><a href="">Mi Perfil</a></td>
                <td><a href="ControladorUsuario?opc=logout">Cerrar Sesion</a></td>
            </tr>
        </tbody>
    </table>
</div>
<br>


/////////////////////////////////
public class UsuarioDAO {
 
    public Usuario validarUsuario(int codigo, String clave){
        Usuario usuario = null;
        if (codigo == 100 && clave.equals("1234")) {
            usuario = new Usuario();
        }  
        return usuario;
    }
}
/////////////////////////////////
ControladorUsuario (dentro del try)

String opcion = request.getParameter("opc");
            if (opcion.equals("login")) {
                String codigo = request.getParameter("txtCodigo");
                String clave = request.getParameter("txtClave");
             
                UsuarioDAO uDao = new UsuarioDAO();
                Usuario usuario = uDao.validarUsuario(Integer.parseInt(codigo), clave);
                                             
                if (usuario != null) {
                    HttpSession session = request.getSession(true);
                    session.setAttribute("USUARIO", usuario);
                 
                    response.sendRedirect("listarProducto.jsp");                  
                         
                } else {                  
                    request.setAttribute("MSG", "Usuario y/o Password incorrectos por favor corregir !!");
                    RequestDispatcher dispatcher = request.getRequestDispatcher("mensaje.jsp");
                    dispatcher.forward(request, response);                          
                }
             
            }        

////////////////////////////////
mensaje.jsp


<jsp:scriptlet>
    String mensaje = (String)request.getAttribute("MSG");
</jsp:scriptlet>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <meta http-equiv="refresh" content="5; URL=index.jsp" />
        <title>SISE - Ejemplo MVC - DAO - JPA</title>
    </head>
    <body>
        <br>
        <br>
        <h2>Mensaje: <%=mensaje %>  </h2>
        <br>
        <a href="index.jsp">Volver al Login</a>
     
    </body>
</html>


////////////////////////////////////////////
listarProductos.jsp


<%@page import="edu.sise.modelo.Usuario"%>
<%@page import="edu.sise.modelo.Producto"%>
<%@page import="java.util.List"%>
<%@page import="edu.sise.dao.ProductoDAO"%>
<%

    Usuario usuarioLogin = (Usuario) request.getSession().getAttribute("USUARIO");
    String rptaTransaccion = "";

    if (usuarioLogin == null) {
        request.setAttribute("MSG", "Acceso denegado a esta pagina primero tiene que Iniciar Sesion !!");
        RequestDispatcher dispatcher = request.getRequestDispatcher("mensaje.jsp");
        dispatcher.forward(request, response);
        return;
    } else {
        rptaTransaccion = (String) request.getAttribute("RPTA");
        rptaTransaccion = rptaTransaccion!=null?rptaTransaccion:"";
    }

    ProductoDAO productoDAO = new ProductoDAO();

%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>SISE - Ejemplo MVC - DAO - JPA</title>
    </head>
    <body>
        <jsp:include page="menuCabecera.jsp" flush="true" />
        <div align="center">
            <table border="1">
                <thead>
                    <tr>
                        <th>Codigo</th>
                        <th>Descripcion</th>
                        <th>Precio</th>
                        <th>Stock</th>
                        <th>Estado</th>
                        <th>Editar</th>
                        <th>Eliminar</th>
                    </tr>
                </thead>          
                <tbody>
                    <%
                        List<Producto> listaProductos = productoDAO.listarProductosAll();

                        for (int i = 0; i < listaProductos.size(); i++) {
                            Producto producto = listaProductos.get(i);
                    %>
                    <tr>
                        <td><%=producto.getCodigo()%></td>
                        <td><%=producto.getDescripcion()%></td>
                        <td><%=producto.getPrecio()%></td>
                        <td><%=producto.getStock()%></td>
                        <td><%=producto.getEstado()%></td>
                        <td><a href="ControladorProducto?opc=edit&codigo=<%=producto.getCodigo()%>">Editar</a></td>
                        <td><a href="ControladorProducto?opc=delete&codigo=<%=producto.getCodigo()%>">Eliminar</a></td>
                    </tr>
                    <%
                        }
                    %>
                </tbody>
            </table>
              <%=rptaTransaccion %>
        </div>              
    </body>
</html>

Comentarios