我是Spring MVC的新手,我有以下疑问:
进入控制器我有这个方法处理HTTP请求 / consultazioneMinisteriale URL
@RequestMapping(value = "/consultazioneMinisteriale", method = RequestMethod.GET)
public String consultazione(Locale locale, Model model) {
List<Twb1012Regione> listaRegioni = geograficaService.getListaRegioni();
return "utenteMinisteriale/consultazione";
}
正如你在方法中看到的,我检索一个调用服务的 Twb1012Regione 对象列表,我正确地检索了这个对象(使用调试器,我看到它被正确初始化)
现在我希望此列表可用于返回的视图,因此我以这种方式更改了上一个方法:
@RequestMapping(value = "/consultazioneMinisteriale", method = RequestMethod.GET)
public String consultazione(Locale locale, Model model) {
List<Twb1012Regione> listaRegioni = geograficaService.getListaRegioni();
model.addAttribute(listaRegioni);
return "utenteMinisteriale/consultazione";
}
所以我只是将检索到的列表添加到模型对象。
现在我试图通过以下方式从 consultazione.jsp 视图访问此对象:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ page session="false"%>
<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %>
<!DOCTYPE html>
<html>
<head>
<title>Home</title>
</head>
<body class="azure">
<h1>Hello World</h1>
<div> ${listaRegioni} </div>
<c:forEach items="${listaRegioni}" var="item">
TEST<br>
</c:forEach>
</body>
</html>
问题是它无法正常工作,我无法在我的视图中看到此 listaRegioni 对象的引用(它只打印 Hello World 消息)。
为什么呢?我错过了什么?我该如何尝试解决这个问题?
答案 0 :(得分:2)
您正在为模型添加一个没有名称的属性。
model.addAttribute(listaRegioni);
因此推断出一个名称,为此它会查看集合中的类型并添加List
后缀。因此,属性的名称是twb1012RegioneList
而不是listaRegioni
(就像您目前在JSP中一样)。这在naming conventions。
最好在将参数添加到模型时明确命名参数。
model.addAttribute("listaRegioni", listaRegioni);