jsp中同一会话变量的多个值
我的代码生成一个表,每行生成一个更新和删除按钮。当按下“更新”或“删除”按钮时,相对行的编号应保存为会话变量,但只保存最后一行的编号。不过,这种方法在php中也可以使用。我试图通过html中的“onclick”属性来分配会话变量,但它也不起作用。我理解原因,并试图找到解决方法jsp中同一会话变量的多个值,jsp,session,Jsp,Session,我的代码生成一个表,每行生成一个更新和删除按钮。当按下“更新”或“删除”按钮时,相对行的编号应保存为会话变量,但只保存最后一行的编号。不过,这种方法在php中也可以使用。我试图通过html中的“onclick”属性来分配会话变量,但它也不起作用。我理解原因,并试图找到解决方法 <% while(result.next()){ %> <tr> <td><%out.print("
<%
while(result.next()){
%>
<tr>
<td><%out.print("<p>"+result.getInt(1)+"</p>"); %></td>
<td><%out.print("<p>"+result.getString(2)+"</p>"); %></td>
<td><%out.print("<p>"+result.getString(3)+"</p>"); %></td>
<td><%out.print("<p>"+result.getString(4)+"</p>"); %></td>
<td><%out.print("<p>"+result.getString(5)+"</p>"); %></td>
<td><%out.print("<p>"+result.getInt(6)+"</p>"); %></td>
<td>
<form action="DeleteUserServlet" method="POST">
<input type="submit" value="Delete"
onclick="<%session.setAttribute("id",result.getInt(1));%>">
</form>
<form action="UpdateUser.jsp" method="POST">
<input type="submit" value="Update" onclick="
<%session.setAttribute("id",result.getInt(1));%>">
</form>
</td>
</tr>
<%
}
%>
您需要在表单中使用隐藏输入,而不是试图通过设置会话变量来实现这一点
<%
while(result.next())
{
%>
<tr>
<td><% out.print("<p>"+result.getInt(1)+"</p>"); %></td>
<td><% out.print("<p>"+result.getString(2)+"</p>"); %></td>
<td><% out.print("<p>"+result.getString(3)+"</p>"); %></td>
<td><% out.print("<p>"+result.getString(4)+"</p>"); %></td>
<td><% out.print("<p>"+result.getString(5)+"</p>"); %></td>
<td><% out.print("<p>"+result.getInt(6)+"</p>"); %></td>
<td>
<form action="DeleteUserServlet" method="POST">
<input type="hidden" name="id" value="<% out.print(result.getInt(1)); %>" />
<input type="submit" value="Delete" />
</form>
<form action="UpdateUser.jsp" method="POST">
<input type="hidden" name="id" value="<% out.print(result.getInt(1)); %>" />
<input type="submit" value="Update" />
</form>
</td>
</tr>
<%
}
%>
为什么你所做的不起作用?所有Java代码都在服务器端运行,因此,即使您放置了类似
的内容,设置会话属性的Java代码也会在HTML页面发送到浏览器之前运行,而不是在用户单击该按钮时运行。因此,您的代码实际执行的是在循环中的over上设置session属性,结果发送到客户端的HTML的onClick值为空:
*生成了更新和删除按钮为什么不在DeleteUserServlet中执行此操作?这就是我要做的,我的问题是,当我单击更新或删除按钮时,会话变量将不会设置为其各自的id号,它将设置为最后一个id号。因此,无论选择哪一行的“删除”按钮,它都会删除最后一行。您想做什么?我找到了一个解决方案(thanx for the help:),因为当jsp文件得到处理时,它会转换为servlet,我认为代码是自上而下运行的,所以无论我为变量设置了什么值,它都会得到上一次赋值的值。不管我找到了另一种方式,我都可以通过url发送id并通过doGet捕获它。感谢您对所有人的帮助:D@ruvinda虽然你可以这样做,但是为了删除/更新它,当然最好使用POST。