JSP 未呈现列表数据
JSP not rendering list data
我有一个简单的 Spring MVC 应用程序 运行。我可以将字符串值从控制器传递到 jsp - 工作正常。
当要求控制器传递列表数据时,它无法在 jsp 视图中呈现。我已经在控制器端测试了数据,以确保在传递给 jsp.
之前它不为空
代码摘录如下
@RequestMapping(method = RequestMethod.GET)
public ModelAndView printWelcome(){
ArrayList<String> listData = new ArrayList<String>();
listData.add("Hello");
listData.add("World");
for(int i =0; i< listData.size(); i++){
System.out.println(listData.get(i));
}
ModelAndView modelAndView = new ModelAndView("list");
modelAndView.addObject("lists", listData);
return modelAndView;
}
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Hello World!</h1>
<ul>
<c:forEach var="listValue" items="${listData}">
<li>${listValue}</li>
</c:forEach>
</ul>
</body>
编辑:
问题是我的 spring 配置。 (我想 - 因为我对此还是新手。)
控制器正在 return 创建一个 ModelAndView 对象,而实际上它应该只是 return 字符串视图名称。工作控制器还有一个带有参数 arg ModelView 的构造函数,需要将列表数据附加到其中。`
@RequestMapping(method = RequestMethod.GET)
public String printWelcome(ModelMap map){
List<String> listData = new ArrayList<String>();
listData.add("Hello");
listData.add("World");
map.addAttribute("lists", listData);
//return list;
return "list";
}
尝试如下使用。您应该使用存储在模型中的密钥。它的行为类似于 HashMap。
<ul>
<c:forEach var="listValue" items="${lists}">
<li>${listValue}</li>
</c:forEach>
</ul>
您必须将此行添加到顶部:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
然后你可以使用<c:
作为taglib前缀。
我有一个简单的 Spring MVC 应用程序 运行。我可以将字符串值从控制器传递到 jsp - 工作正常。
当要求控制器传递列表数据时,它无法在 jsp 视图中呈现。我已经在控制器端测试了数据,以确保在传递给 jsp.
之前它不为空代码摘录如下
@RequestMapping(method = RequestMethod.GET)
public ModelAndView printWelcome(){
ArrayList<String> listData = new ArrayList<String>();
listData.add("Hello");
listData.add("World");
for(int i =0; i< listData.size(); i++){
System.out.println(listData.get(i));
}
ModelAndView modelAndView = new ModelAndView("list");
modelAndView.addObject("lists", listData);
return modelAndView;
}
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Hello World!</h1>
<ul>
<c:forEach var="listValue" items="${listData}">
<li>${listValue}</li>
</c:forEach>
</ul>
</body>
编辑:
问题是我的 spring 配置。 (我想 - 因为我对此还是新手。)
控制器正在 return 创建一个 ModelAndView 对象,而实际上它应该只是 return 字符串视图名称。工作控制器还有一个带有参数 arg ModelView 的构造函数,需要将列表数据附加到其中。`
@RequestMapping(method = RequestMethod.GET)
public String printWelcome(ModelMap map){
List<String> listData = new ArrayList<String>();
listData.add("Hello");
listData.add("World");
map.addAttribute("lists", listData);
//return list;
return "list";
}
尝试如下使用。您应该使用存储在模型中的密钥。它的行为类似于 HashMap。
<ul>
<c:forEach var="listValue" items="${lists}">
<li>${listValue}</li>
</c:forEach>
</ul>
您必须将此行添加到顶部:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
然后你可以使用<c:
作为taglib前缀。