其中我在代码
<%
        HashMap para_map=new HashMap();
        para_map.put("sortid",item.getSortId());
        para_map.put("sortname",item.getSortName());
        para_map.put("master",item.getMaster());
        request.setAttribute("map1",para_map);
     %>
里面的最后一句加上
 HashMap p=(HashMap)request.getAttribute("map1");
 System.out.println("map的值"+p);
可以正确输出Map里面的值来

解决方案 »

  1.   

    如果你想通过html:link来传递参数可以设置属性 paramName="<%=para_map%>" paramId="map1"
    如果你是用setAttribute()那么也用getAttribute()取吧.
      

  2.   

    我用了HashMap para=(HashMap)request.getAttribute("map1");
    获得的para也是空的.
    你给的那两个属性我那本书上说是传单个参数的时候才用
    传多个参数的时候用name属性
    但是我该怎么获取多个参数的值啊?
      

  3.   

    用pageContext
    pageContext.setAttribute("map1",para_map)
      

  4.   

    request.setAttribute("map1",para_map);
    改成session.setAttribute("map1",para_map);比较好,因为request的生命周期只限于页面传送.而session生命就长了.再用HashMap para=(HashMap)session.getAttribute("map1");
      

  5.   

    谢谢 你们给我的建议!
    我改成pageContext.setAttribute("map1",para_map);
    在action里面HashMap para=(HashMap)request.getAttribute("map1");获取
    的到的para是null;
    用session后 用
    ServletRequest session2 = null;
    HashMap para=(HashMap)session2.getAttribute("map1");
    抛出java.lang.NullPointerException 
    没有通过HashMap para=(HashMap)session2.getAttribute("map1");
    我用request.setAttribute("map1",para_map);
    在action里面用
    HashMap para=(HashMap)request.getParameterMap();
    System.out.println(para.get("sortid"));
    得到输出
    [Ljava.lang.String;@324b85
    参数接收测试2!
    到底是怎么回事?为什么会输出这样的字符?
      

  6.   

    用session后 用
    ServletRequest session2 = null;
    HashMap para=(HashMap)session2.getAttribute("map1");
    抛出java.lang.NullPointerException 你这个超级菜鸟!!!在action取session应该是
     public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                HttpServletResponse response) throws Exception {
    HashMap para=(HashMap) request.getSession().getAttribute("map1");
    ...
      

  7.   

    没必要用session,你hashmap传递的时候就是以多个parameter参数传递到request里的,所以你只要在action里用request.getParameter("sortid")去取得就可以了,你可以把鼠标停在link标签上看url路径.应该有map里的各个参数值.
      

  8.   

    能用request的地方最好不要用session。