1

我想知道如何将数组或列表从一个 .jsp 页面传递到另一个页面。然后我想从这个数组中获取值并将它们分配给一个 javascript 数组。我想我已经正确配置了源 jsp 页面,但想知道如何获取第二个 .jsp 页面中的值。

这是我的源 .jsp 文件:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Firstjsp</title>
</head>
<body>
<Form Method = "Post" Action = "Mapper.jsp">
<% String locations[] = {"Loan 1", "33.890542", "151.274856", "Address 1","true", "-35404.34"};
for (int i =0; i<locations.length; i++)
{
%>
<Input type = "Hidden" name = "loc" value = "<%= locations[i] %>">
<%
}
%>
</Form>
</body>
</html>
4

2 回答 2

2

您可以使用HttpServletRequest#getParameterValues(). 这将返回具有相同参数名称的所有参数值的字符串数组。在您的情况下,您在第一个 JSP 中生成了几个具有相同名称的隐藏 HTML 输入元素loc,因此在第二个 JSP(或者最好是servlet)中应该执行以下操作:

String[] locations = request.getParameterValues("loc");
于 2012-06-29T17:31:38.567 回答
1

我认为最简单的方法是将变量(它甚至可以作为指针工作)作为会话变量。这样,只要代码在同一个会话下运行,您就可以在任何地方访问它。

<% String name = request.getParameter( "username" ); session.setAttribute( "theName", name ); %>

这个例子也用到了request。不同的是session比较突出。比如你在session中设置了一个变量那么即使你关闭浏览器重启它仍然存在。可以把它看成一个全局变量。Request是当您将数据从一个 jsp/servlet 发送到另一个 jsp/servlet 时最好使用它。它的生命周期基本上为 1。当您重定向页面时它会消失。

您可以使用session.setParameter(name_of_the_variable,the_variable)session.getParameter(name_of_the_variable)。作为对我有用的提示,请始终确保测试返回的参数,在上面的“名称”的情况下,如果它不是 NULL。如果会话中没有具有该名称的变量,它将返回 NULL,并且大多数可能会崩溃。希望这会有所帮助!

于 2012-06-29T17:21:50.243 回答