我是 Spring MVC 的新手,我有以下疑问:
在 Controller 中,我有这种方法可以处理指向 /consultazioneMinisteriale URL 的 HTTP 请求
@RequestMapping(value = "/consultazioneMinisteriale", method = RequestMethod.GET)
public String consultazione(Locale locale, Model model) {
List<Twb1012Regione> listaRegioni = geograficaService.getListaRegioni();
return "utenteMinisteriale/consultazione";
}
正如您在方法中看到的那样,我检索了调用服务的 Twb1012Regione 对象列表,我正确地检索了该对象(使用调试器我看到它已正确初始化)
现在我希望这个列表在返回的 View 中可用,所以我以这种方式更改了以前的方法:
@RequestMapping(value = "/consultazioneMinisteriale", method = RequestMethod.GET)
public String consultazione(Locale locale, Model model) {
List<Twb1012Regione> listaRegioni = geograficaService.getListaRegioni();
model.addAttribute(listaRegioni);
return "utenteMinisteriale/consultazione";
}
所以我只是将检索到的列表添加到 Model 对象中。
现在我正尝试通过我的 consultazione.jsp View 访问此对象,方法如下:
<%@ 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 对象的任何引用到我的 View 中(它只打印 Hello World 消息) .
为什么?我错过了什么?我该如何尝试解决这个问题?
最佳答案
您正在向没有名称的模型添加属性。
model.addAttribute(listaRegioni);
因此推断出一个名称,为此它查看集合中的类型并添加 List
后缀。因此属性的名称是 twb1012RegioneList
而不是 listaRegioni
(正如您当前在 JSP 中所拥有的)。这在 naming conventions 中有描述。 .
最好在将参数添加到模型时明确命名参数。
model.addAttribute("listaRegioni", listaRegioni);
关于java - 为什么我无法访问这个放入 Model 对象的列表到这个 Spring MVC 项目中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32604039/