Foros del Web » Programación para mayores de 30 ;) » Java »

Ocultar elementos segun rol de usuario

Estas en el tema de Ocultar elementos segun rol de usuario en el foro de Java en Foros del Web. Hola a todos. Estoy teniendo un problema al usar un @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Java: Ver original < jsp : include page = "includes/sidebar.jsp" ></ jsp ...
  #1 (permalink)  
Antiguo 28/06/2015, 18:51
 
Fecha de Ingreso: junio-2012
Mensajes: 46
Antigüedad: 7 años, 5 meses
Puntos: 5
Ocultar elementos segun rol de usuario

Hola a todos.
Estoy teniendo un problema al usar un
Código Java:
Ver original
  1. <jsp:include page="includes/sidebar.jsp"></jsp:include>
y agradecería si me pudiesen ayudar a saber a que se debe. El problema está cuando ingreso mediante la url y no existe una session , es decir cuando me logueo y accedo mediante las url no sucede tal error. En mi pagina (panel.jsp) que contiene el include està esto :
Código Java:
Ver original
  1. <%
  2.           String nombre = null , apellido = null , rol = null;
  3.           if(session.getAttribute("empleado") == null){
  4.               response.sendRedirect("index.jsp");
  5.           }else{
  6.               Rol_Empleado re = (Rol_Empleado)session.getAttribute("empleado");
  7.               nombre = re.getEmpleado().getNombre();
  8.               apellido = re.getEmpleado().getApellido();
  9.               rol = re.getRol().getRol();
  10.           }
  11.       %>
  12.  
  13.       <section id="container" >
  14.          
  15.           <!--header start-->
  16.           <jsp:include page="includes/header.jsp"></jsp:include>
  17.           <!--header end-->
  18.  
  19.           <!--sidebar start-->
  20.        <jsp:include page="includes/sidebar.jsp"></jsp:include>
  21.           <!--sidebar end--> ...

Ahora en el sidebar que es donde tengo un menu que oculta elementos segun rol del usuario tengo algo como esto
Código Java:
Ver original
  1. <%
  2.     String nombre = null, apellido = null, rol = null , foto = null;
  3.     if (session.getAttribute("empleado") == null) {
  4.         response.sendRedirect("index.jsp");
  5.     } else {
  6.         Rol_Empleado re = (Rol_Empleado) session.getAttribute("empleado");
  7.         nombre = re.getEmpleado().getNombre();
  8.         apellido = re.getEmpleado().getApellido();
  9.         foto = re.getEmpleado().getFoto();
  10.         rol = re.getRol().getRol();
  11.     }
  12. %>
  13.  
  14. <aside>
  15.             <h5 class="centered"><%=nombre + " " + apellido%></h5>
  16.  
  17.             <%if(rol.equals("Administrador")){%>
  18.  
  19.             <li class="sub-menu">
  20.                 <a href="" >
  21.                     <span>Clientes</span>
  22.                 </a>
  23.                 <ul class="sub">
  24.                     <li><a  href="clientes.jsp">Ver clientes</a></li>
  25.                 </ul>
  26.             </li>
  27.             <li class="sub-menu">
  28.                 <a href="" >
  29.                     <span>Productos</span>
  30.                 </a>
  31.                 <ul class="sub">
  32.                     <li><a  href="registrarProducto.jsp">Registrar Productos</a></li>
  33.                 </ul>
  34.             </li>
  35.  
  36.             <%}else if( rol.equals("Recepcionista")){%>
  37.  
  38.             <li class="sub-menu">
  39.                 <a href="" >
  40.                     <span>Pedidos</span>
  41.                 </a>
  42.                 <ul class="sub">
  43.                     <li><a  href="pedidosPendientes.jsp">Pedidos Pendientes</a></li>
  44.                 </ul>
  45.             </li>
  46.  
  47.             <%}%>
  48.         <!-- sidebar menu end-->
  49.     </div>
  50. </aside>

Como mencione antes , está todo bien cuando el usuario esta logueado pero cuando no lo esta e ingreso a panel.jsp o a cualquier otra pagina por la url me salta el error :

Estado HTTP 500 - Ha sucedido una excepción al procesar la página JSP /Admin/panel.jsp en línea 67

Código Java:
Ver original
  1. org.apache.jasper.JasperException: Ha sucedido una excepción al procesar la página JSP /Admin/panel.jsp en línea 67
  2.  
  3. 64:           MAIN SIDEBAR MENU
  4. 65:           <!--**************************** -->
  5. 66:           <!--sidebar start-->
  6. 67:           <jsp:include page="includes/sidebar.jsp"></jsp:include>
  7. 68:           <!--sidebar end-->
  8. 69:
  9. 70:           <!-- *************************->
  10.  
  11. Stacktrace:
  12.     org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
  13.     org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
  14.     org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
  15.     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
  16.     javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
  17.     org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

y otro error màs

Código Java:
Ver original
  1. org.apache.jasper.JasperException: Ha sucedido una excepción al procesar la página JSP /Admin/includes/sidebar.jsp en línea 27
  2.  
  3. 24:                     <span>Inicio</span>
  4. 25:                 </a>
  5. 26:             </li>
  6. 27:             <%if(rol.equals("Administrador")){%>
  7. 28:             <li class="sub-menu">
  8. 29:                 <a href="" >
  9. 30:                     <i class="fa fa-users"></i>
  10.  
  11.  
  12. Stacktrace:
  13.     org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
  14.     org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
  15.     org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
  16.     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
  17.     javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
  18.     org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:934)
  19.     org.apache.jsp.Admin.panel_jsp._jspService(panel_jsp.java:139)
  20.     org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
  21.     javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
  22.     org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
  23.     org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
  24.     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
  25.     javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
  26.     org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
  27. causa raíz
  28.  
  29.     org.apache.jsp.Admin.includes.sidebar_jsp._jspService(sidebar_jsp.java:101)
  30.     org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
  31.     javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
  32.     org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
  33.     org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
  34.     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
  35.     javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
  36.     org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:934)
  37.     org.apache.jsp.Admin.panel_jsp._jspService(panel_jsp.java:139)
  38.     org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
  39.     javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
  40.     org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
  41.     org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
  42.     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
  43.     javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
  44.     org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

EDITO : Como cambio el titulo a mi pregunta? XD

Última edición por tommy_tony; 28/06/2015 a las 18:58
  #2 (permalink)  
Antiguo 29/06/2015, 02:48
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 10 años, 6 meses
Puntos: 306
Respuesta: Ocultar elementos segun rol de usuario

Si no existe la sessión no cargues el include, redirecciona directamente.

También puedes en el include comprobar si existe, y si no no cargues nada del código que haga referencia.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 29/06/2015, 03:42
 
Fecha de Ingreso: junio-2012
Mensajes: 46
Antigüedad: 7 años, 5 meses
Puntos: 5
Respuesta: Ocultar elementos segun rol de usuario

Hola Xerelo , gracias por responder.
No sé si te referías a esto pero con lo que me dijiste hice lo siguiente y me ha funcionado

Código Java:
Ver original
  1. <!--sidebar start-->
  2.   <% if (session.getAttribute("empleado")!=null){ %>
  3.        <jsp:include page="includes/sidebar.jsp"></jsp:include>
  4.   <% } %>
  5.  <!--sidebar end--> ...

Etiquetas: elementos, jsp, rol, string, usuario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:01.