假设我有两个 servlet,分别称为 servlet1 和 servlet2。
服务器1
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
...
String htmlFormat = "<h2>Choose a employee</h2>" + "<p>Employee Name: <select name=\"employeeName\" onchange=\"location = this.options[this.selectedIndex].value;\">";
for (Employee employee: employees) {
htmlFormat += "<option value=\"servlet2\">" + employee.getFirstName() + " " + employee.getLastName() + "</option>";
}
htmlFormat += "</select></p>";
out.print(htmlFormat);
}
如您所见,当我单击其中一个选项时,它会将我引导至 servlet2。我想知道我是否将用户的单击选项(员工名字 + 姓氏)值传递给另一个 servlet。我需要获取 servlet2 上的名字和姓氏。请帮助我..谢谢
最佳答案
在您的第一个 servlet 中,让它输出一个 html 表单,该表单会将表单数据 POST 回服务器:
<form id="usersubmit" action="servlet2"></form>
使您的选择框成为表单数据的一部分。如果您希望表单在更改时提交,您可以使用 javascript:
<select name="employeeName" form="usersubmit" onchange="this.form.submit()">
...
</select>
最后是value
每个 <option>
的属性标签应包含您希望发送/检索的值,因此您可以在 servlet 中编写:
htmlFormat += "<option value=\" " +employee.getFirstName()+ " " +employee.getLastName()+ " \">" + employee.getFirstName() + " " + employee.getLastName() + "</option>";
这应该发送所选 option
的值到“servlet2”。要访问 servlet2 中的值,请使用:
request.getParameter("employeeName");
关于javascript - 从选项 html 标记中检索值并传递给另一个 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23792697/