将数据从一个jsp页面传递到另一个jsp页面

时间:2010-12-10 19:56:52

标签: javascript jsp

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

3 个答案:

答案 0 :(得分:2)

  

当点击链接时,必须将关联的值传递给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>

然后,您将能够在doGet()的{​​{1}}方法中预处理HTTP请求,该HttpServlet方法正在监听<url-pattern> /page2

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>

另见:

答案 1 :(得分:0)

您可以通过将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将数据从一个页面发送到另一个页面,这和我写的一样快:-)使用表单提交是另一个你应该研究的地方,如果这种方式没有为你工作。

答案 2 :(得分:0)

如果你在讨论一个无法序列化为字符串并作为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" )
?>