【问题标题】:Pass Data from one jsp page to another jsp page将数据从一个 jsp 页面传递到另一个 jsp 页面
【发布时间】:2010-12-10 19:56:52
【问题描述】:

我有两个页面(page1.jsp 和 page2.jsp)。在 page1.jsp 中,我从数据库中检索一些值并显示与这些值对应的超链接。现在我想要的是,当我单击任何这些超链接时,在 page2.jsp 中,我应该显示与数据库中的 vlaue 对应的其他字段。所以我本质上想要的是当一个链接被点击时,关联的值必须传递给 page2.jsp,在那里我查询数据库以检索其他字段。

【问题讨论】:

    标签: javascript jsp


    【解决方案1】:

    当一个链接被点击时,关联的值必须被传递给 page2.jsp,在那里我查询数据库以检索其他字段

    那么,您想在显示 JSP 之前预处理 HTTP 请求吗?为此,您需要一个 servlet。

    假设page1.jsp中的链接显示如下:

    <ul>
        <c:forEach items="${ids}" var="id">
            <li><a href="page2?id=${id}">View data for ID ${id}</a></li>
        </c:forEach>
    </ul>
    

    然后,您将能够在 HttpServletdoGet() 方法中预处理 HTTP 请求,该方法正在侦听 /page2&lt;url-pattern&gt;

    Long id = Long.valueOf(request.getParameter("id"));
    Data data = dataDAO.find(id);
    request.setAttribute("data", data); // Will be available as ${data} in JSP.
    request.getRequestDispatcher("/WEB-INF/page2.jsp").forward(request, response);
    

    page2.jsp 中,您将能够访问data,如下所示:

    <p>The data for ID ${param.id} is:</p>
    <p>Field 1: ${data.field1}</p>
    <p>Field 2: ${data.field2}</p>
    

    另见:

    【讨论】:

      【解决方案2】:

      您可以通过将 GET 或 POST 变量传递到相应的 jsp 页面并使用 jsp 读取它们来做到这一点:

      使用 GET 方法:

      <a href="page2.jsp?datatobesend=value">link</a>
      

      如果您想动态执行此操作,则必须使用 javascript 在点击时添加:

      使用 jQuery js 库获取:

      <script>
      $(document).ready(function(){
        $('#mylink').click(function(){
          $(this).attr('href', $(this).attr('href')+'?datatobesend=value');
       });
      });
      </script>
      <a href="page2.jsp" id="mylink">link</a>
      

      有很多方法可以使用 GET/POST 将数据从一个页面发送到另一个页面,这就像我可以写一个一样快 :-) 如果这种方式没有,你应该考虑使用表单提交的另一个地方'不适合你。

      【讨论】:

      • 嗨,实际上我将从数据库中检索到的值存储在变量中。我想把它作为一个变量本身传递给另一个jsp页面
      • 你能像我在第一个例子中那样把那个变量放在链接的末尾吗?
      【解决方案3】:

      l如果您正在谈论的变量不能序列化为字符串并作为http参数传递,如建议的那样,那么您需要将变量存储在会话中。

      --page1.asp
      <?
      session.setAttribute( "val", record );
      ?>
      
      
      --page2.asp
      
      <?
      //Cast this to your type
      Object record = session.getAttribute("val");
      
      // Clean it up now that you're done
      session.removeAttribute( "val" )
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-17
        • 1970-01-01
        • 2013-12-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多