之前我没有遇到过这个问题,实际上我有一个不同类的工作实现。但由于某种原因,这个例子失败了。
我有一个名为InfoServlet.java
的课程:
@WebServlet("/info_servlet")
public class InfoServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setAttribute("test", "hello world.");
request.getRequestDispatcher("info_servlet.jsp").forward(request, response);
}
}
我的jsp页面info_servlet.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Test</title>
</head>
<body>
<h1>HELLO</h1>
<p><c:out value="${test}" /></p>
</body>
</html>
现在当我转到localhost:8080/MySite/info_servlet.jsp
时,我的输出只是
作为参考,我在java中使用tomcat 7和servlet 3.0。我没有在传递一个物体时遇到麻烦,所以我不确定为什么突然间它不能让我在info_servlet.jsp
显示价值
答案 0 :(得分:2)
一切都按预期工作。您正在servlet中设置“test”属性:如果直接转到.jsp,绕过servlet,则不会设置该属性。因此它的值为null
,表达式语言将默默忽略它。