Spring MVC and List Example

In this tutorial, we show you how to print the List values via JSTL c:forEach tag.

P.S This web project is using Spring MVC frameworks v3.2

1. Project Structure

Review the project directory structure, a standard Maven project.

project structure

2. Project Dependencies

Add Spring and JSTL libraries.

pom.xml

	<properties>
		<spring.version>3.2.2.RELEASE</spring.version>
		<jstl.version>1.2</jstl.version>
	</properties>

	<dependencies>

		<!-- jstl -->
		<dependency>
			<groupId>jstl</groupId>
			<artifactId>jstl</artifactId>
			<version>${jstl.version}</version>
		</dependency>

		<!-- Spring Core -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>${spring.version}</version>
		</dependency>

	</dependencies>

3. Spring Controller

A Spring controller to return a List.

MainController.java

package com.mkyong.web.controller;

import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class MainController {

	@RequestMapping(value = "/", method = RequestMethod.GET)
	public ModelAndView getdata() {

		List<String> list = getList();

		//return back to index.jsp
		ModelAndView model = new ModelAndView("index");
		model.addObject("lists", list);

		return model;

	}

	private List<String> getList() {

		List<String> list = new ArrayList<String>();
		list.add("List A");
		list.add("List B");
		list.add("List C");
		list.add("List D");
		list.add("List 1");
		list.add("List 2");
		list.add("List 3");

		return list;

	}

}

4. JSP Page

To print the returned List from controller, uses JSTL c:forEach tag.

index.jsp

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<body>
	<h2>Spring MVC and List Example</h2>

	<c:if test="${not empty lists}">

		<ul>
			<c:forEach var="listValue" items="${lists}">
				<li>${listValue}</li>
			</c:forEach>
		</ul>

	</c:if>
</body>
</html>

Output – http://localhost:8080/SpringMvcExample/

spring mvc list example

5. Download Source Code

Download – SpringMVC-Lists-Example (11 KB)

References

  1. Spring MVC Dropdown Box Example
  2. JDK List JavaDoc

9 comments on “Spring MVC and List Example

  1. Whitelabel Error Page

    This application has no explicit mapping for /error, so you are seeing this as a fallback.
    Thu Aug 22 14:26:58 PDT 2019
    There was an unexpected error (type=Not Found, status=404).
    No message available

    Reply
  2. hi, sir, i have problems, how to create very basic List of Spring MVC ?
    how i can do it ?

    Reply
  3. sir,
    @RequestMapping(“/view/{id}”)
    public String viewcountry(@PathVariable(“id”)String id,Model model)
    {
    /*ModelAndView obj=new ModelAndView(“Countrylist”);*/
    System.out.println(“id=”+id);
    countrylist=countrylistDao.Get(id);
    model.addAttribute(“cntry”,countrylist);
    return “Countrylist”;

    }
    this is my controller for retrieve data from database by id. in jsp, i coundn’t dispaly the data. please help me i paste my jsp page below,

    Bootstrap Example

    #main{
    width: 100%;
    height: 45vh;
    background-image: url(‘${img}/usa.jpg’);
    background-size: cover;
    opacity: 0.7;
    }

    ${cntry.getCountry_name()}

    ${cntry.getUniversity_name()}

    ${cntry.getLocation()}

    UniversityName

    Location

    UniversityName

    Location

    UniversityName

    Location

    UniversityName

    Location

    UniversityName

    Location

    UniversityName

    Location

    Reply
  4. hello sir,can you please explain a program for getting the input from the user and adding it in the list

    Reply
  5. i do get this error all time….anyone help me on this pls
    tried to add jar files and tried to add dependency in maven but still no luck…..
    [ERROR ] SRVE0293E: [Servlet Error]-[Failed to load listener: org.springframework.web.context.ContextLoaderListener]: java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener
    at java.lang.ClassLoader.findBootstrapClass(Native Method)
    at java.lang.ClassLoader.findBootstrapClassOrNull(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.findSystemClass(Unknown Source)
    at com.ibm.ws.classloading.internal.GatewayClassLoader.loadClass(GatewayClassLoader.java:127)
    at [internal classes]

    [ERROR ] SRVE0279E: Error occured while processing global listeners for the application {0}: {1}
    java.lang.NullPointerException
    [ERROR ] SRVE8052E: Logging ClassNotFoundException
    org/springframework/web/servlet/DispatcherServlet
    [ERROR ] SRVE0276E: Error while initializing Servlet [mvc-dispatcher]: javax.servlet.UnavailableException: SRVE0200E: Servlet [org.springframework.web.servlet.DispatcherServlet]: Could not find required class – org/springframework/web/servlet/DispatcherServlet
    at com.ibm.ws.webcontainer.servlet.ServletWrapper$1.run(ServletWrapper.java:1497)
    at [internal classes]

    Reply
  6. Hi..
    In above example its not setting value for list in jsp page..
    Please could you provide me full example code.
    Thanks.

    Reply
  7. Hi, do u know how to to set a value to a list of a object passed to a jsp ? eg.
    I need to set one email to the email list of User from jsp

    class User{

    private List emails;

    public void setEmails(List emails) {
    this.emails = emails;
    }
    }

    @Controller
    public class UserController {

    @RequestMapping(value = “/register”, method = RequestMethod.GET)
    public ModelAndView user() {
    return new ModelAndView(“user”, “command”, new User());
    }
    }

    <form:label path="”>Email
    <form:input path="” />

    Reply
    1. I think I found it, its

      Email

      Reply

Leave a Comment

Your email address will not be published. Required fields are marked *