JSP Standard Tag Library (JSTL) es un conjunto de etiquetas que se pueden usar para implementar algunas operaciones comunes, como bucles, formato condicional y otras. JSTL tiene como objetivo proporcionar una manera fácil de mantener páginas SP. El uso de etiquetas definidas en JSTL ha simplificado la tarea de los diseñadores para crear páginas web. Ahora pueden simplemente usar una etiqueta relacionada con la tarea que necesitan implementar en una página JSP.
Para obtener más información sobre JSTL, consulte este artículo: Biblioteca de etiquetas estándar JSP
Para iterar una Lista en JSP, el <c:forEach> es de uso común.
Sintaxis:
Por ejemplo, ${list} apunta a List<Object>, luego lo siguiente
<c:forEach var="item" items="${list}" > ${item} </c:forEach>
hace básicamente lo mismo que lo siguiente en “core Java”:
for (Object item : list) { System.out.println(item); }
En este artículo, discutiremos cómo podemos iterar la Lista en JSP usando JSTL en detalle con un proyecto de ejemplo en Spring MVC.
Proyecto de ejemplo
Configurar el proyecto
Vamos a utilizar Spring Tool Suite 4 IDE para este proyecto. Consulte este artículo para instalar STS en su máquina local ¿Cómo descargar e instalar Spring Tool Suite (Spring Tools 4 para Eclipse) IDE? Vaya a su STS IDE, luego cree un nuevo proyecto maven, Archivo > Nuevo > Proyecto Maven , y elija el siguiente arquetipo como se muestra en la siguiente imagen de la siguiente manera:
Agregue las siguientes dependencias y complementos de maven a su archivo pom.xml .
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.18</version> </dependency> <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> <!-- plugin --> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build>
A continuación se muestra el código completo para el archivo pom.xml después de agregar estas dependencias.
Archivo: pom.xml
XML
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.geeksforgeeks</groupId> <artifactId>simple-calculator</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>simple-calculator Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.18</version> </dependency> <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> </dependencies> <build> <finalName>simple-calculator</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build> </project>
Configuración del servlet de despachador
Antes de pasar a la parte de codificación, echemos un vistazo a la estructura del archivo en la imagen de abajo.
Nota : Consulte los archivos del cuadro de color verde. Otros archivos no están presentes en este proyecto.
Entonces, primero cree una carpeta src/main/java y dentro de esta carpeta cree una clase llamada CalculatorAppIntilizer y colóquela dentro del paquete com.geeksforgeeks.calculator.config y extienda la clase AbstractAnnotationConfigDispatcherServletInitializer . Consulte la imagen de abajo.
Y cada vez que extiende esta clase, tiene algunos métodos preabstractos que necesitamos para proporcionar la implementación. Ahora, dentro de esta clase, solo tenemos que escribir dos líneas de código para configurar el servlet de despachador. Antes de eso, tenemos que crear otra clase para el archivo de configuración de Spring. Entonces, vaya a la carpeta src/main/java y dentro de esta carpeta cree una clase llamada CalculatorAppConfig y colóquela dentro del paquete com.geeksforgeeks.calculator.config . A continuación se muestra el código para el archivo CalculatorAppConfig.java .
Archivo: CalculatorAppConfig.java
Java
package com.geeksforgeeks.calculator.config; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @Configuration @ComponentScan(basePackages = "com.geeksforgeeks.calculator.controllers") public class CalculatorAppConfig { }
Y debajo está el código completo para el archivo CalculatorAppIntilizer.java . Se agregan comentarios dentro del código para comprender el código con más detalle.
Archivo: CalculatorAppIntilizer.java
Java
package com.geeksforgeeks.calculator.config; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; public class CalculatorAppIntilizer extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class<?>[] getRootConfigClasses() { // TODO Auto-generated method stub return null; } // Registering the Spring config file @Override protected Class<?>[] getServletConfigClasses() { Class aClass[] = { CalculatorAppConfig.class }; return aClass; } // Add mapping url @Override protected String[] getServletMappings() { String arr[] = { "/geeksforgeeks.org/*" }; return arr; } }
Configurar ViewResolver
Spring MVC es un marco Web MVC para crear aplicaciones web. En general, todos los marcos MVC proporcionan una forma de trabajar con vistas. Spring hace eso a través de ViewResolvers, que le permite representar modelos en el navegador sin vincular la implementación a una tecnología de vista específica. Lea más aquí: ViewResolver en Spring MVC . Entonces, para configurar ViewResolver, vaya al archivo CalculatorAppConfig.java y escriba el código de la siguiente manera
@Bean public InternalResourceViewResolver viewResolver() { InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); viewResolver.setPrefix("/WEB-INF/view/"); viewResolver.setSuffix(".jsp"); return viewResolver; }
Y debajo está el código actualizado para el archivo CalculatorAppConfig.java después de escribir el código para configurar ViewResolver.
Archivo: Actualizado CalculatorAppConfig.java
Java
package com.geeksforgeeks.calculator.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.view.InternalResourceViewResolver; @EnableWebMvc @Configuration @ComponentScan(basePackages = "com.geeksforgeeks.calculator.controllers") public class CalculatorAppConfig { // setup ViewResolver @Bean public InternalResourceViewResolver viewResolver() { InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); viewResolver.setPrefix("/WEB-INF/view/"); viewResolver.setSuffix(".jsp"); return viewResolver; } }
Crear controlador
Vaya a la carpeta src/main/java y dentro de esta carpeta cree una clase llamada Jstldemocontroller y póngala dentro del paquete com.geeksforgeeks.calculator.controllers . A continuación se muestra el código para el archivo Jstldemocontroller.java . En este archivo, vamos a crear el ArrayList .
Archivo: archivo Jstldemocontroller.java
Java
package com.geeksforgeeks.calculator.controllers; import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; @Controller public class Jstldemocontroller { @RequestMapping("/jstldemo") public ModelAndView showHomePage() { // Create the List of Skills List<String> skills = new ArrayList<String>(); skills.add("Data Science"); skills.add("Data Structure"); skills.add("Javascript"); skills.add("Python"); skills.add("SQL"); // Using ModelAndView ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jstl-demo-page"); modelAndView.addObject("skillList", skills); return modelAndView; } }
Cree una página JSP y una lista de iteraciones usando JSTL
Ahora tenemos que crear una vista llamada » página de registro » dentro de la carpeta WEB-INF/view con la extensión .jsp . Así que vaya a src> main> webapp> WEB-INF y cree una vista de carpeta y dentro de esa carpeta cree un archivo jsp llamado jstl-demo-page . Antes de usar JSTL, debemos realizar los siguientes cambios en nuestro proyecto.
Paso 1: agregue la siguiente dependencia a su archivo pom.xml .
XML
<!-- https://mvnrepository.com/artifact/jstl/jstl --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency>
Paso 2: agregue las etiquetas JSTL en los archivos JSP (aquí el archivo jstl-demo-page.jsp).
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
Paso 3: escriba el siguiente bucle for para iterar el Array.
<c:forEach var="skill" items="${skillList}"> <li>${skill}</li> </c:forEach>
A continuación se muestra el código completo del archivo jstl-demo-page.jsp .
Archivo: jstl-demo-page.jsp
HTML
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <html> <head> </head> <body> <h3>List Without Iteration :</h3> ${skillList} <h3>List With Iteration :</h3> <ul> <c:forEach var="skill" items="${skillList}"> <li>${skill}</li> </c:forEach> </ul> </body> </html>
Así que ahora hemos terminado con la parte de codificación. Ejecutemos y probemos nuestra aplicación.
Ejecute su aplicación
Para ejecutar nuestra aplicación Spring MVC, haga clic con el botón derecho en su proyecto > Ejecutar como > Ejecutar en el servidor. Y ejecute su aplicación como se muestra en la imagen a continuación como se muestra a continuación de la siguiente manera:
Después de eso, use la siguiente URL para ejecutar su controlador
http://localhost:8080/simple-calculator/geeksforgeeks.org/jstldemo
Producción:
Entonces, en la pantalla de salida, puede ver la lista con y sin iteración.
Publicación traducida automáticamente
Artículo escrito por AmiyaRanjanRout y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA