0

我已经为 hashmap 创建了一个对象,其中包含 one.jsp 中的一些键和值,现在我想在 two.jsp 中使用相同的对象。如何将此对象发送到 two.jsp,以及如何访问 two.jsp 中的数据(键、值)。

编辑:

一个.jsp

HashMap map = new HashMap();
map.add( new Integer( 2 ), "two" );
map.add( new Integer( 4 ), "four" );
System.out.println( map );
// sending param to two.jsp
session.setAttribute("value",map);

二.jsp

   // how can i access that object "map" here ?
       String map=session.getAttribute("value"); // error

错误

 error :object cant be assign to string – 

解决了

 HashMap s_hm=(HashMap)session.getAttribute("value");
4

3 回答 3

2

根据您的需要,您可以将其添加到request/session作为属性,然后再将其转发到第二个 jsp:

request.setAttribute("transferMap",map );

transferMap是属性的名称,map是实际的地图。

于 2013-11-06T06:12:54.003 回答
1

您可以将值放在会话中,并且可以在整个会话中检索相同的值以保持会话尝试这种方式

session.setAttribute("value",map);

并使用它来检索它

session.getAttribute("value");

这是在会话中保持值的演示代码。以下代码会将值放入会话中

<%@ page import="java.util.HashMap"%>
<%@ page import="java.util.Map"%>
<%session.setAttribute("hi","hi");

Map map = new HashMap();
map.put( new Integer( 2 ), "two" );
map.put( new Integer( 4 ), "four" );
//System.out.println( map );
// sending param to two.jsp
session.setAttribute("value",map);%>

以下代码将从会话中检索值并显示在浏览器上

<%out.println(session.getAttribute("value"));%>

在浏览器上输出

{2=two, 4=four}
于 2013-11-06T06:15:43.420 回答
0

使用 servlet 而不是 one.jsp 来设置属性

request.setAttribute("hashMap",map );
//Forward the request to two.jsp using Request Dispatcher
RequestDispatcher rd = request.getRequestDispatcher("/two.jsp");
rd.forward(request, response);

然后在你的 two.jsp 中使用jstl来检索它。

<c:out value="${hashMap[2]}"/>
<c:out value="${hashMap[4]}"/>  

您需要在您的项目中包含 jstl jars 并将此行包含在您的 jsp 中。

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
于 2013-11-06T06:29:23.523 回答