Tengo un problema con JSTL y el operador vacío. Ya he hecho algunas páginas simples y todo funcionaba bien, pero ahora tengo:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<body>
<form action="/Projekt/myaccount" method="post">
<table border="1">
<tr>
<td>Artist</td>
<td>Record Name</td>
<td>Delete</td>
</tr>
<c:forEach var="item" items="${records}">
<tr>
<td>${item.artist}</td>
<td>${item.recordName}</td>
<td>
<input type="checkbox" name='${item.recordName}|${item.recordName}'/>
</td>
</tr>
</c:forEach>
</table>
<hr/>
<input type="submit" name="back" value="back"/>
<c:if test='${not empty "${records}"}'>
<input type="submit" name="delete" value="delete selected"/>
</c:if>
</form>
</body>
</html>
ahora no importa si me puse los registros atribuyen o no, el botón de borrar muestra arriba:
<c:if test='${not empty "${records}"}'>
<input type="submit" name="delete" value="delete selected"/>
</c:if>
en condiciones normales situación al atributo de registros Paso ArrayList y luego uso foreach, pero a veces ArrayList está vacío, por lo que en esas situaciones no quiero que aparezca el botón Eliminar, luché de la manera más fácil para lograr esto sería usar este operador vacío. ¿Dónde estoy cometiendo un error?
Incluso he intentado configurar manualmente este atributo nulo:
if (ar.size() != 0)
request.setAttribute("records", ar);
else
request.setAttribute("records",null);
EDIT: @Qwe: si usted está bien, a mí me funcionó antes, porque he comprobado si el atributo estaba vacío en mi manera, siempre fue cierto, porque utilicé construcciones incorrectas, pero funcionó porque solo quería mostrar una cadena, si no había String no aparecía nada, así que estaba pensando que todo funcionaba bien.
Si intento este fragmento de código, se produce una excepción: org.apache.jasper.JasperException: /WEB-INF/userrecords.jsp (línea: 26, columna: 15) símbolo igual esperado. Lo curioso es que en otro .jsp utilizo $ {showWarning} y funciona bien (se nota cuando debería) –
Andna
y lo que está en la línea 26? cambiar a dobles comillas no lo arregla? –
En la línea 26 tengo esto si la etiqueta y el operador vacío, las comillas dobles no ayudan, para ser honesto, no entiendo completamente cuando necesito comillas simples o dobles, pero observé que cuando uso esos operadores vacíos debo usa los dobles y los solos, como dije, funciona en otro .jsp que hice. – Andna