0

我使用 spring 3.1 和方法应该返回一个由 jspx 页面表示的视图。在调试时,我在名为的模型中看到变量noteList,我无法在页面上打印或迭代此变量。

输出是${noteList}

这是一些代码:

@RequestMapping( value = "/", method = RequestMethod.GET)
public ModelAndView rootPage(){
    List<Note> result = sessionFactory.openSession().createCriteria(Note.class).list();

    ModelAndView mv = new ModelAndView("index");
    mv.addObject(result);
    return mv;
}

<?xml version="1.0" encoding="UTF-8" ?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:spring="http://www.springframework.org/tags" version="2.0">
    <jsp:directive.page language="java"
        contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" />

    <![CDATA[<!DOCTYPE html>]]>
    <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Index page</title>
</head>
<body>
    <c:out value="${noteList}"/> 
</body>
    </html>
</jsp:root>

<beans:bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <beans:property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <beans:property name="prefix" value="/WEB-INF/views/" />
        <beans:property name="suffix" value=".jspx" />
    </beans:bean>
4

3 回答 3

1

由于noteList包含对象类型列表Note,您可以尝试访问对象的属性之一Note。假设你有一个name属性 in Note,然后{node.name}在你的 jsp 中尝试。

于 2012-05-08T17:02:31.710 回答
0

谢谢大家!我有答案了。

问题出在 jspx 页面中

工作页面的开头包含下一个代码:

 <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
    xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:spring="http://www.springframework.org/tags"
    xmlns:form="http://www.springframework.org/tags/form" version="2.0">

    <jsp:output doctype-root-element="html" omit-xml-declaration="true"
        doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
        doctype-system="http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" />
    <jsp:directive.page language="java"
        contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" />

    <html>
<head>
.....
于 2012-05-11T09:58:27.837 回答
0

您可以改用ModelAndView addObject(String attributeName, Object attributeValue)

例如:

mv.addObject("noteList", result);

然后在 JSPX

<c:forEach items="${noteList}" var="node">
  ${node}
</c:forEach>
于 2012-05-08T15:16:29.430 回答