【问题标题】:Retrieve value from option html tag and pass to another servlet从选项 html 标记中检索值并传递给另一个 servlet
【发布时间】:2014-05-21 20:00:28
【问题描述】:

假设我有两个 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 上获取名字和姓氏。请帮助我..谢谢

【问题讨论】:

    标签: javascript html jsp servlets select


    【解决方案1】:

    在您的第一个 servlet 中,让它输出一个 html 表单,该表单会将表单数据 POST 回服务器:

    <form id="usersubmit" action="servlet2"></form>
    

    使您的选择框成为表单数据的一部分。如果您希望在更改时提交表单,您可以使用 javascript:

    <select name="employeeName" form="usersubmit" onchange="this.form.submit()">
    ...
    </select>
    

    最后,每个&lt;option&gt; 标记的value 属性应该包含您希望发送/检索的值,因此您可以在servlet 中编写:

    htmlFormat += "<option value=\" " +employee.getFirstName()+ " " +employee.getLastName()+ " \">" + employee.getFirstName() + " " + employee.getLastName() + "</option>";
    

    这应该将所选option 的值发送到“servlet2”。要访问 servlet2 中的值,请使用:

    request.getParameter("employeeName");
    

    【讨论】:

      【解决方案2】:

      此操作发生在客户端,而不是服务器上。您需要将 HTML 表单 POST 回服务器并从 FORMDATA 访问 employeeName 字段。

      【讨论】:

      • 如何在没有提交按钮的情况下发布选项标签文本?当我点击其中一个选项时,我被引导到 servlet2...
      • 我不懂 Java,但该技术适用于所有 Web 表单处理。也许这会有所帮助:stackoverflow.com/questions/1228571/…
      • @user2850163,去掉 onChange 方法,给你的表单一个提交按钮。当然,你必须实际创建一个&lt;form&gt;。
      猜你喜欢
      • 2013-06-10
      • 1970-01-01
      • 2015-02-19
      • 1970-01-01
      • 1970-01-01
      • 2018-08-03
      • 2012-05-22
      • 1970-01-01
      • 2018-10-02
      相关资源
      最近更新 更多