如何验证会话中的列表是否为空? JSP

时间:2016-04-28 01:29:45

标签: java html jsp

作为一项任务,我打算使用JSP页面来创建一个WEB页面。它应该在“index.jsp”上显示用户登录产品列表。用户登录页面后,他将被发送到“index.jsp”以与产品列表进行交互。一些互动包括改变价格。

我遇到的问题是,我似乎无法正确验证会话中的产品列表是否为空。我的代码将我的列表识别为始终为空,因此默认情况下会不断创建产品,这使得用户必须更改其价格时很难。

这是我的“index.jsp”代码:

<%

String valiLog = (String)session.getAttribute("logged");

if(valiLog == "false" || valiLog == null)    
{

    response.sendRedirect("error.jsp?cod= No se ha registrado.");
}


ArrayList<Productos> listaProductos = new ArrayList();


if( listaProductos.isEmpty())
{
listaProductos = new ArrayList();    
listaProductos.add(new Productos(1, "Beerus battle figure", 19900, "img/bee.jpg"));
listaProductos.add(new Productos(2, "Goku battle figure", 11100, "img/gok.jpg"));
listaProductos.add(new Productos(3, "Superman battle figure", 29900, "img/sup.jpg"));
session.setAttribute("producto", listaProductos);
out.println("se imprime");
} 


listaProductos = (ArrayList<Productos>)session.getAttribute("producto");

Usuario usuarioLogeado = (Usuario)session.getAttribute("usuarioActivo");




%>

 <html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Ejercicio 26-04-2016</title>
</head>
<body>


    <h1>Productos</h1>
    <%

      out.println("<h2>Usuario : " + usuarioLogeado.getNombre()+"</h2>");  
      out.println("<table border='1'>");
      out.println("<tr>");
      out.println("<td><b>Producto</b></td>");
      out.println("<td><b>Precio</b></td>");
      out.println("</tr>");

      for( Productos p : listaProductos){     
      out.println("<tr>");
      out.println("<td><a href = 'mostrarImgBig.jsp?codImg=" + p.getCodigo() + "'><img src = '"+p.getRutaThumb() +"' width = '200' height = '200'/></a></td>");
      if(usuarioLogeado.getAdmin() == true)
      {
          out.println("<td><a href = 'modPrecio.jsp?codImg=" + p.getCodigo() + "'>"+p.getPrecio()+"</a></td>");
      }else{
      out.println("<td>"+p.getPrecio()+"</td>");
      }

      }   
      out.println("</table>");

      %>
      <a href = 'login.jsp'><input type='button' value='Cerrar sesion' name='logout' /></a>





</body>

1 个答案:

答案 0 :(得分:0)

怎么可能不是空的

ArrayList<Productos> listaProductos = new ArrayList();

if( listaProductos.isEmpty())

而不是在JSP中使用java学习使用JSTL。

然后可以使用

<c:if test="${empty listaProductos}">

请参阅http://docs.oracle.com/cd/E17904_01/web.1111/e13712/reference.htm#WBAPP429