我正在学习教程about spring,我应该在控制器中设置一个变量,以便在渲染请求的jsp中打印。代码如下:
@Controller
public class HelloController {
@RequestMapping(value="/hello.htm")
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String now = (new Date()).toString();
return new ModelAndView("WEB-INF/views/hello.jsp", "now", now);
}
}
然后,hello.jsp代码如下:
<%@ page session="true"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<body>
<p>Greetings, it is now <c:out value="${now}" /></p>
</body>
</html>
我希望得到一个html显示:
Greetings, it is now Mon Fri Dec 06 00:39:35 CET 2013
但我得到的只是:
Greetings, it is now ${now}
我已经检查了两次(甚至更多!)但是一切似乎都像教程所说的那样但是必须有一些东西缺失,我希望......
我的代码出了什么问题?
答案 0 :(得分:10)
这是 E xpression L anguage问题。您的${}
尚未解决。这可能由于多种原因而发生。一个,也是最有可能的是,你的web.xml声明了Servlet 2.3及以下版本。你必须指定2.4+。现在,显然,您的Servlet容器还必须支持更高版本。
答案 1 :(得分:2)
改变这一点 - 图书馆坏了:
<!-- %@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>-->
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>