将值从一个jsp页面传递到另一个jsp页面

时间:2010-03-05 08:46:28

标签: jsp jsp-tags

我正在jsp。(到列)中检索数据库到表的值

我想将该值插入数据库中的另一个表中。要做到这一点,我正在使用另一个jsp表在db中插入该值,我在之前的jsp的页面表单操作选项卡中调用该jsp页面。

我使用request.getParameter()方法将第一个jsp页面中的值转换为新的jsp页面,但是我无法使用request.getParameter()获取值。

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:3)

打开第二个JSP时,您必须将相关参数(我猜想的ID)作为GET参数传递给第二页。也就是说,表格中的链接应如下所示:

<a href="edit.jsp?itemId=${item.id}" />

然后您可以在第二页上使用request.getParameter("itemId")读取该参数。

(如果不使用JSTL和EL,${..}将替换为<%= .. %>

答案 1 :(得分:1)

您只需将值作为请求参数传递给下一个请求。这样,它们将在下一个请求中可用,即请求参数。

如果从页面A到页面B的请求恰好由链接调用,那么您需要在URL中定义参数:

<a href="update.jsp?userid=${user.id}&fieldid=${field.id}">update</a>

这样,request.getParameter() update.jsp POST可以提供这些内容。

如果从页面A到页面B的请求恰好由<input type="hidden">表单调用,则需要将参数定义为表单的输入字段。如果要将其隐藏在视图中,请使用<form method="post" action="update.jsp"> ... <input type="hidden" name="userid" value="${user.id}"> <input type="hidden" name="fieldid" value="${field.id}"> </form>

request.getParameter()

这样,update.jsp {{1}} {{1}}可以提供这些内容。

答案 2 :(得分:0)

如果您仍然无法使用表单和request.getParameter()传递值,则可以尝试另一种方法。

在您的代码中将每个值对设置为会话变量。

session.setAttribute("userId", userid);
session.setAttribute("fieldId", fieldid);

只要您的会话仍处于活动状态,现在可以从任何jsp获取这些值。

使用:

int userid = session.getAttribute("userId");
int fieldid = session.getAttribute("fieldId");

在update.jsp页面上检索您的值。 请记住在不再使用会话变量时删除它们,因为它们将在用户会话期间驻留在内存中。

答案 3 :(得分:0)

您应该使用url标记构建您的网址:

<c:url value="edit.jsp" var="url">
    <c:param name="itemId" value="${item.id}"/>
</c:url>
<a href="${url}">edit</a>

这将为您免费提供URL重写(必要时附加jsessionid)和params的URL编码。

不使用JSTL或EL的解决方案应视为特殊情况。