我看到很多关于此的问题,但提议的解决方案并不适用于我:
在我的servlet中,我这样做:
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
request.setAttribute("title", "Level0and1ForUser");
request.getRequestDispatcher("./testPages/resultSetFormatter.jsp")
.forward(request, response);
}
}
在jsp页面中:
<title>
<%= request.getParameter("title") %>
</title>
结果为null,如您所见:
答案 0 :(得分:2)
您可以使用:
${requestScope.title}
永远不要在jsp页面中使用java代码,已弃用且非常气馁
始终不鼓励使用scriptlet。相反,应该使用标签库,如JSTL或表达式语言(EL)。
总是会出现这样的问题:为什么我们不能在JSP中使用scriptlet,同时也可以使用scriptlet执行相同的任务。
这就是为什么人们应该避免在JSP中使用scriplet:
- JSP Scriptlets降低了代码的可维护性和可读性,因此难以阅读和进行进一步的更改。
- JSP Scriptlets无法重复使用。
- JSP Scriptlet不是单元可测试的。
- JSP Scriplets将演示文稿与非常容易出错的业务逻辑合并。
- 最后但并非最不重要的一点是,如果JSP Scriptlet抛出异常,它会破坏整个页面,并且不会在处理过程中进一步移动。
答案 1 :(得分:1)
如果您将值放在controller
的{{1}}中,则必须以相同的方式获取它:
attribute
但Jordi的回答更美丽。