2010-09-30 13 views
14

¿Cómo puedo hacer que funcione el siguiente código?Cómo utilizar la etiqueta JSTL "if" sin obtener "..attribute test no acepta ninguna expresión"

 <c:if test="${null != searchResults}" > 
      <c:forEach items="${searchResults}" var="result" varStatus="status"> 

He intentado muchas variaciones diferentes de este, tales como:

<c:if test="${searchWasPerformed}" > 

o

<c:if test="<%=request.getAttribute("searchWasPerformed") %>" > 

e incluso

<% boolean b = null != request.getAttribute("searchResults"); %> 
    <c:if test="${b}" > 

que se ve muy feo:/ Pero continúo getti ng el

org.apache.jasper.JasperException: /WEB-INF/jsp/admin/admin-index.jsp(29,2) PWC6236: According to TLD or attribute directive in tag file, attribute test does not accept any expressions 

¿Cómo voy a solucionar esto?

+0

su código original debería funcionar. ¿Cuál es el mensaje de excepción para esto? ¿Cuál es tu versión JSP? (y la versión de tomcat, si la usa) – Bozho

+0

El mensaje de excepción fue el que estaba en la parte inferior de mi publicación y el servidor que estoy usando es glassfish v3. :> Como se menciona abajo, ¡el problema era un URI obsoleto! Gracias de nuevo. – Erik

+0

¡Buena pregunta! Tuve este problema exacto que me pasó ayer. Ahora puedo ver que fue causado por copiar y pegar el código de muestra de una publicación del foro que tenía años. –

Respuesta

22

Compruebe la versión del taglib JSTL que utiliza. Debe ser 1.1, por lo que debe tener (tenga en cuenta el URI):

<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %> 
+0

Gracias a ambos, el URI parece haber sido antiguo: http://java.sun.com/jstl/core – Erik

+1

@Erik: Ese es el URI JSTL 1.0. Esto no funciona bien con JSP 2.0 cuando te encuentras. – BalusC

Cuestiones relacionadas