JSTL

 

1. (FAQS) Si echamos un vistazo a nuestra aplicación de FAQs, las páginas faqs.jsp, delete_menu.jsp y update_menu.jsp muestran listados de FAQs: la primera para elegir de qué FAQs queremos obtener los datos, y las otras dos para elegir qué FAQ queremos borrar o actualizar, respectivamente.

Para poder mostrar estas listas, se emplean bucles "for" con código Java:

<% FAQBean[] faqs = (FAQBean[])request.getAttribute("faqs"); %>

... codigo HTML

<% for (int i = 0; i < faqs.length; i++) {%>
	... codigo para mostrar cada FAQ
<% } %>

Lo que se pide es sustituir esos bucles "for" en estas tres páginas por tags forEach de JSTL que hagan lo mismo. Para ello:

<taglib>
	<taglib-uri>core</taglib-uri>
	<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>

NOTA: consultad la configuración de aplicaciones Web para ver dónde debe ir la marca taglib en el fichero descriptor

<%@ taglib uri="core" prefix="c" %>
<c:forEach var="nombreVar" items="conjunto">
	...
	...<c:out value="${nombreVar.nombreCampo}"/>
	...
</c:forEach>

donde conjunto sería el nombre de la lista que queremos recorrer.

No utilizaremos los beans, así que no necesitamos las líneas:

<jsp:useBean ... />
<jsp:setProperty name="faq" property="id" .../>
<jsp:setProperty name="faq" property="pregunta" .../>
<jsp:setProperty name="faq" property="respuesta" .../>
<jsp:setProperty name="faq" property="fechaModif" .../>

... etc.

Se trata simplemente de recorrer la lista de FAQs con un tag forEach:

<c:forEach var="listafaqs" items="${faqs}">
	...
</c:forEach>

luego, dentro del bucle, utilizamos el tag out para obtener los valores deseados en los lugares indicados:

...
<c:out value="${listafaqs.id}"/>
...

 

2. (FAQS) En los ejercicios de la sesión anterior hemos utilizado tags de la librería request para obtener el valor de algunos parámetros en delete.jsp, insert.jsp y update.jsp. Si os da tiempo, lo que proponemos en este ejercicio es que sustituyáis esos tags de la librería request por sus correspondientes en JSTL.