会话集属性不起作用

时间:2016-03-25 19:11:14

标签: java spring-mvc

我有以下控制器:

@Controller
public class HomeController {
@Resource(name="returnGraph")
Graph returnGraph;
@RequestMapping("/")
public String goToHomePage(HttpSession session){
    session.setAttribute("sm", returnGraph.getVertexes());
    return "home";

}
}

以下web.xml:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>


</web-app>

在我输入的jsp中:

${sm}

我在服务器上运行时的输出只是:

${sm} 

在网页上。

这是home.jsp页面。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="s" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"       "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
${sm}
</body>
</html>

缺少什么?

2 个答案:

答案 0 :(得分:1)

session声明JSP中没有<%! %>。所以,你可以按照以下方式使用。

<input type="text" value="<%= session.getAttribute("sm") %>" />

对于表达式语言(EL),您可以

<input type="text" value="${sm}" />

答案 1 :(得分:0)

以下内容需要添加到home.jsp:

<%@ page isELIgnored="false" %>

SkyWalker在答案中提供了一个很好的暗示。