Java 在servlet中访问jstl变量
Im通过在jsp中迭代客户列表来填充客户数据,如下所示Java 在servlet中访问jstl变量,java,jsp,servlets,jstl,Java,Jsp,Servlets,Jstl,Im通过在jsp中迭代客户列表来填充客户数据,如下所示 <form action="CustomerUpdate" method="post"> <c:forEach var="listItems" items="${customers}"> <label> First Name: </label><c:out value="${listItems.fname}" /> <label> L
<form action="CustomerUpdate" method="post">
<c:forEach var="listItems" items="${customers}">
<label> First Name: </label><c:out value="${listItems.fname}" />
<label> Last Name: </label><c:out value="${listItems.lname}" />
<label> Address: </label><c:out value="${listItems.address}" />
<input type="submit" value="Edit" name="edit">
<input type="submit" value="Delete" name="delete"><br />
</c:forEach>
</form>
名字:
姓氏:
地址:
现在,在“编辑”或“删除”操作中,我要跟踪需要编辑/删除的客户。所以在servlet中,我如何访问var listItems中的customer对象。如果不可能,我是否需要使用值隐藏输入变量,并使用servlet中的getParameter访问它们 这只是一个简单的例子。以这种方式更改代码:
<c:forEach var="listItems" items="${customers}">
<form action="CustomerUpdate" method="post">
<input type="hidden" value="${listItems.id}" name="id">
<label> First Name: </label><c:out value="${listItems.fname}" />
<label> Last Name: </label><c:out value="${listItems.lname}" />
<label> Address: </label><c:out value="${listItems.address}" />
<input type="submit" value="Edit" name="action">
<input type="submit" value="Delete" name="action"><br />
</form>
</c:forEach>
String id = request.getParameter("id");
String action = request.getParameter("action");
现在您知道了id
和action
类型(编辑或删除)
替代解决方案
不要使用表单和提交来调用您的操作,而是使用直接链接
<c:forEach var="listItems" items="${customers}">
<input type="hidden" value="" name="id">
<label> First Name: </label><c:out value="${listItems.fname}" />
<label> Last Name: </label><c:out value="${listItems.lname}" />
<label> Address: </label><c:out value="${listItems.address}" />
<button onclick="window.location.href='CustomerUpdate?action=edit&id=${listItems.id}'">Edit</button>
<button onclick="window.location.href='CustomerUpdate?action=delete&id=${listItems.id}'">Delete</button>
</c:forEach>
名字:
姓氏:
地址:
编辑
删除
在servlet中检查单击的按钮:
if (request.getParameter("action") != null) //if action is not null
{
String action = request.getParameter("action");
String id = request.getParameter("id");
if (action.equals("edit")) //edit button clicked
{
//do your work here
}
else if (action.equals("delete")) //delete button clicked
{
//your work here
}
}
这里的问题是“编辑”按钮也会显示“编辑”的名字。所以我试着编辑。但是当我使用request.getParameter(“action”)访问它时,它返回的值是Edit,而不是值attributeOk中的值,我用一个新的建议更新了我的答案。然而,有许多不同的方法可以做到这一点。