假设我有两个名为servlet1和servlet2的servlet。
Servet1
@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上获取firstname和lastname。请帮帮我..谢谢
答案 0 :(得分:1)
此操作发生在客户端,而不是服务器上。您需要将HTML表单POST回服务器并从FORMDATA访问employeeName
字段。
答案 1 :(得分:1)
在你的第一个servlet中,让它输出一个html表单,将formdata发送回服务器:
<form id="usersubmit" action="servlet2"></form>
使您的选择框成为formdata的一部分。如果您希望在onchange上提交表单,可以使用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
的值发送给&#34; servlet2&#34;。要访问servlet2中的值,请使用:
request.getParameter("employeeName");