JSP页面上有一个列表,数据来自ArrayList数组遍历的结果。
在页面上还有一个按钮。
现在想点击按钮后把数组传给Servlet,可以实现吗?我认为JSP页面到客户端浏览器那里已经成为静态,数组不存在。我另外想到两种方法:
1、点击按钮后把参数传给Servlet,重新查询数据库得出数组。
2、在把数组存到session,点击按钮后跳转到Servlet,提取session,得出数组。
如果不能实现,这两种方法哪种好?

解决方案 »

  1.   

    对 放在Request里相对来说会好一点 比SESSION存储好一点 
      

  2.   

    对 放在Request里相对来说会好一点 比SESSION存储好一点 
      

  3.   

    可以传,直接在jsp上输出多个重名的隐藏域
    比如:
    <input type="hidden" name="test" value="1">
    <input type="hidden" name="test" value="2">
    <input type="hidden" name="test" value="3">
    用form提交
    在servlet里用
    String[] str = request.getParameterValues("test");
    取出来的就是["1","2","3"]
      

  4.   

    我也想用request啊,但是不知道该怎么传。Servlet传给JSP就会,但是JSP传给Servlet不会。
      

  5.   

    <form action="servlet的url地址" methode="post" name="actionForm">
    <input type="hidden" name="test" value="1">
    <input type="hidden" name="test" value="2">
    <input type="hidden" name="test" value="3">
    </form>
    <input type="button" value="提交" onclick="commit()">
    <script>
    function commit() {
        actionForm.submit();//actionForm 就是form标签的名字
    }
    </script>
    后台取值的时候用
    String[] str = request.getParameterValues("test");
    就可以了
      

  6.   

    顺便说一下servlet转jsp传值是转发url,用的是request.getAttribute()方法
    而jsp转servlet是提交用的是request.getParameter()方法
      

  7.   

    列表的内容太多,放不进session?
    我在一个servlet里将列表存入session,在另一个servlet取出来的时候是空的,但是在JSP页面取出则不会
      

  8.   

    用request.setAttrute("键名" ,数组名)存储你的结果
    用request.getAttrute("键名" ,数组名)获取你的结果