Pasar una lista como parámetro en un jsp:include

A la hora de querer incluir en nuestra jsp otra jsp a la que le vamos a pasar parámetros la forma común es:

       <jsp:include page="../paginator.jsp">
             <jsp:param name="param1" value="${parametro1}"> 
             <jsp:param name="param2List" value="${parametro2List}"> 
       </jsp:include>
     

Y a la hora de hacer referencia en la otra jsp se hace usando ${param.param1} y ${param.param2List} y ya se mostraría su valor. El problema viene si queremos iterar con un c:foreach esa lista que hemos pasado como parámetro en la nueva jsp como se muestra a continuación

	 <c:foreach items="${param.param2List}" var="page">
            ${page}
         </c:foreach>

si por ejemplo nuestra lista fuera de enteros que contuviera los números del 1 al 3 al iterar nos aparecerá:

  • [1
  • 2
  • 3]

Para evitar esto debemos de hacer un replace del [ y del ] quedando:


   <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
   <c:set value="${fn:replace(param.param2List, '[', '')}" var="param2List2">
   <c:set value="${fn:replace(param2List2, ']', '')}" var="param2List2">
   <c:foreach items="${param2List2}" var="page">
            ${page}
   </c:foreach>

Y nos quedaría:

  • 1
  • 2
  • 3

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *