无法在jspx页面获取模型变量

时间:2012-05-08 15:08:23

标签: java jsp spring-mvc jspx

我使用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>

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

E.g:

mv.addObject("noteList", result);

然后在JSPX中

<c:forEach items="${noteList}" var="node">
  ${node}
</c:forEach>

答案 2 :(得分: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>
.....