为什么我无法访问此列表,将Model对象放入此Spring MVC项目中?

时间:2015-09-16 09:00:27

标签: java spring jsp spring-mvc java-ee

我是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 消息)。

为什么呢?我错过了什么?我该如何尝试解决这个问题?

1 个答案:

答案 0 :(得分:2)

您正在为模型添加一个没有名称的属性。

model.addAttribute(listaRegioni);

因此推断出一个名称,为此它会查看集合中的类型并添加List后缀。因此,属性的名称是twb1012RegioneList而不是listaRegioni(就像您目前在JSP中一样)。这在naming conventions

中有所描述

最好在将参数添加到模型时明确命名参数。

model.addAttribute("listaRegioni", listaRegioni);