我相信,这是一个非常简单的问题,但我解决它的所有尝试都失败了。
简而言之:我有一个带有调用 Java Servlet 的表单的 JSP 文件。servlet 处理输入并返回一个变量(属性)并重定向回同一个jsp。我想让 jsp 使用JavaScript处理返回的属性,而不是 scriptlet。
JSP 代码(test.jsp):
<html>
...
<%@page language="java"
import="java.sql.*"
import="java.util.*"
%>
...
<body>
<script type='text/javascript'>
var name = session.getAttribute("test");
alert(name);
</script>
...
</body>
</html>
和 Servlet 代码:
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
request.getSession().setAttribute("test", "value");
String redirectedPage = "/test.jsp";
RequestDispatcher reqDispatcher = getServletConfig().getServletContext().getRequestDispatcher(redirectedPage);
reqDispatcher.forward(request,response);
}
我相信问题源于我声明的会话变量:
var name = session.getAttribute("test");
我也试过:
var name = (String) session.getAttribute("bob");
和:
String name = (String) session.getAttribute("bob");
我可以使用 scriptlet (<% %>) 从我的表单中访问此属性,但这不允许我修改/处理返回的属性,我需要这样做。
任何帮助是极大的赞赏。如果你觉得这个问题已经被问到/解决了(我已经搜索过),请礼貌地告诉我。