Невозможно перебрать список строк в 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.