我正在jsp。(到列)中检索数据库到表的值
我想将该值插入数据库中的另一个表中。要做到这一点,我正在使用另一个jsp表在db中插入该值,我在之前的jsp的页面表单操作选项卡中调用该jsp页面。
我使用request.getParameter()
方法将第一个jsp页面中的值转换为新的jsp页面,但是我无法使用request.getParameter()
获取值。
我该如何解决这个问题?
答案 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的解决方案应视为特殊情况。