从选项html标记中检索值并传递给另一个servlet

时间:2014-05-21 20:00:29

标签: javascript html jsp servlets select

假设我有两个名为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。请帮帮我..谢谢

2 个答案:

答案 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");