zoukankan      html  css  js  c++  java
  • jsp页面间的传值

    很多的时候我们只是把我们需要的数据,查询出来,然后用request.setAttribute("" ,"" )方法保存这个数据集合。再在我们能跳转到的下一个jsp页面把我们之前保存的数据从request.getAttribut().拿出来,用于显示用。

    但是当我们还希望把这个数据继续传递到下一个jsp页面的时候,我们应该怎么去做呢。

    第一个方法:隐藏字段
    在jsp页面中用一个隐藏字段,比如<input type="hidden" id="", name="xxx", value="<%=valuetoPass%>">.这样你我们就可以在本次请求的时候,用request.getParameter("xxx");来拿到这个字段了。这个方法是可以的。但是如果我们要传递一个Map或者List这样的集合类型的数据结构到下一个页面呢。因为request.getParameter只能得到String字段,这个时候我们就不能用隐藏字段了。

    于是

    第二个方法就是:session

    很多的时候我们都会在面试的时候被问到这个问题,所以我们就这个方法来做一下。

    之前一直以为放在request里也是可以的,但是我在实际的操作过程中并没有成功。比如:

    一个请求过来之后,我们拿到了产品列表信息。现在我们要把产品信息按产品类别分类,并把这些分类信息发放在一个Map里面。如:A类产品有:111,222,333三种,我们就把111,222,333这三个产品放到一个list里面,然后,把这个list按照A的key保存在Map里。即Map.put(“A”, list)。这样我们在要跳转到的jsp页面就能够按产品类型进行分类取值了。

    好了,现在我们把准备好的map放在request.setAttribute("map", map), 然后页面跳转到了test1.jsp, 这样我们就可以在test1.jsp页面拿到我们要的数据。然后,再当我们要把这个map集合传递到test2.jsp页面的时候,很显然的一个想法就是再把这个map在request里set一遍就可以了。即

    Map<String, List<TproductInfo>> catMap = (Map<String, List<TproductInfo>>) request.getAttribute("catMap");
    	request.setAttribute("catMap", catMap);

    然后请求处理中,还未跳转到test2.jsp页面之前。

    request.getAttribute("catMap")

    这样子是取不到值的。

    但是如果你这样子

    Map<String, List<TproductInfo>> catMap = (Map<String, List<TproductInfo>>) request.getAttribute("catMap");
    session.setAttribute("catMap", catMap);
    

    然后在后台

    Map<String, List<TproductInfo>> catMap = (Map<String, List<TproductInfo>>) request.getSession().getAttribute("catMap");


    就能取到值。


    第三:还可能从jsp:param的jsp指令来传,这个暂时没有去试过。



  • 相关阅读:
    【第36题】2019年OCP认证12C题库062考试最新考试原题
    004 基本命令 touch cp mv 命令
    003 基本指令 mkdir rm -rf(暴力删除)
    002 文件目录类的指令 cd ls
    001 指定运行级别
    005 抽象工厂模式
    006 使用类加载器加载资源文件
    004 方法反射
    003 属性反射
    003 工厂方法模式
  • 原文地址:https://www.cnblogs.com/aukle/p/3230927.html
Copyright © 2011-2022 走看看