如何在其他页面中访问类的对象?

时间:2013-11-06 06:10:44

标签: java jsp jquery

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

编辑:

one.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);

two.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");

3 个答案:

答案 0 :(得分:2)

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

request.setAttribute("transferMap",map );

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

答案 1 :(得分: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}

答案 2 :(得分: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 jar,并在jsp中包含此行。

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>