Невозможно перебрать список строк в jstl с пружиной

Я пытаюсь изучить Spring / MVC Framework. Я создал базовый пример, где я печатаю простую строку на экране, это нормально, теперь я хочу перебрать список строк, но ничего не появляется. Кажется, что мой foreach смотрит на коллекцию в целом, а не на элементы внутри. Я печатаю дополнительный символ в цикле, и отображается только один, но есть 4 элемента.

Печать прямо на экране без foreach показывает содержимое в стиле [a,b,c,d].

Я не уверен, что я делаю неправильно, любая помощь приветствуется.

контроллер:

    @Controller
public class HelloController {

    //the request mapping simply says, what url am i tied to?
    @RequestMapping(value = "/greeting") //defines the url and the method 
it is tied to
    public String sayHello(Model model){ //model is a key-value pair.

        List<String> stringList = new ArrayList<String>();
        stringList.add("A");
        stringList.add("B");
        stringList.add("C");
        stringList.add("D");

        model.addAttribute("greeting", "Hello, World"); //greeting is key, value hello world
        //the jsp page will reference back to 'greeting' as above.
        model.addAttribute("stringList", stringList);
        model.addAttribute("stringlist2", "stringlist2");

        return "hello";//this ties us to the jsp pages
    }
}

JSP:

<h1>
    ${greeting}
    ${stringList}
    ${stringlist2}
    <%--this maps to the model attribute greeting in the controller.--%>
</h1>

<c:forEach items="${stringList}" var="elt">
    <div>:<c:out value="${elt}"/></div>
</c:forEach>

Результат на странице:

Hello, World [A, B, C, D] stringlist2
: //this is the extra char I'm printing in the foreach.

1 ответ

Решение

Посмотреть исходные шоу:<c:foreach items="[A, B, C, D]" var="elt"> <div>:<c:out value=""></c:out></div> </c:foreach>

Вашему серверу не удалось найти, проанализировать и выполнить теги JSTL.

Это может произойти, если вы забыли объявить c префикс пространства имен, как показано ниже в верхней части JSP:

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

Если это все еще не работает, или вы получаете исключение, говорящее " Абсолютный uri: http://java.sun.com/jstl/core не может быть разрешен", то это может произойти, если вы используете JSTL юрского периода. 1.0 (что действительно неожиданно в наши дни), или что вы забыли установить JSTL тоже. Инструкции по установке и другие советы по устранению неполадок можно найти на нашей вики-странице JSTL.

Другие вопросы по тегам