作爲一項任務,我打算使用JSP頁面來完成一個WEB頁面。它應該有一個用戶登錄和一個產品列表被顯示在「index.jsp」上。在用戶登錄頁面後,他將被髮送到「index.jsp」與產品列表進行交互。一些互動包括改變他們的價格。如何驗證會話中的列表是否爲空? 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>
這也是錯的錯就錯'如果(valiLog == 「假」' - ?使用String.equals –
什麼區別 –
==是對象比較而String.equals是對象的內容比較 –