【问题标题】:How to find out which HTML button was pushed in my servlet?如何找出在我的 servlet 中按下了哪个 HTML 按钮?
【发布时间】:2010-11-06 11:22:57
【问题描述】:

我正在创建一个包含两个提交按钮的注册表单。 我需要知道在我的 servlet 代码的表单中单击了哪个按钮?

【问题讨论】:

    标签: java html jsp button


    【解决方案1】:

    您可以在表单中添加一个隐藏字段,当用户单击按钮时,在 sumbit 之前使用 javascript 将其值设置为“btn1”或“btn2”。

    干杯:)

    【讨论】:

    • 不需要JS。你可以做谷歌做的事,有两个不同值的提交按钮。
    • 顺便说一句,这是 JS 的做法 :)
    • 这么少的代码。这么多事情错了。 (1) 它不能决定是HTML还是XHTML。 (2) 有拼写错误。 (3) 它引入了一个根本不需要的对 JS 的依赖。 (4) 它使用没有循环的循环标签。 (5) 获得对表单元素的引用需要很长时间。 (6) 它使用内部事件处理程序属性,而不是将代码分离到脚本文件中。虽然它是一种使用 JS 的方式,但它是使用 JS 解决问题的一个非常糟糕的例子,而 JS 最初是错误的解决问题的工具。跨度>
    • @MatthewFlaschen 不,你错了。如果您的网站是国际化的,您就不能依赖以合理的形式获得的价值。具有不同值的多个提交按钮的想法对于国际化网站来说是行不通的。
    【解决方案2】:

    阅读this question的答案。

    所以,在

    String button1 = request.getParameter("button1");
    String button2 = request.getParameter("button2");
    

    不为空的值为按下的按钮。

    或者,如果您想为两个按钮使用相同的名称,您可以设置不同的值

    <input type="submit" name="act" value="delete"/>
    <input type="submit" name="act" value="update"/>
    

    然后

    String act = request.getParameter("act");
    if (act == null) {
        //no button has been selected
    } else if (act.equals("delete")) {
        //delete button was pressed
    } else if (act.equals("update")) {
        //update button was pressed
    } else {
        //someone has altered the HTML and sent a different value!
    }
    

    【讨论】:

    • 如何在不设置 type = "submit" 的情况下做到这一点?有没有办法用 type="button" 做到这一点?
    【解决方案3】:

    只有被点击的按钮才是成功的控件。

    <input type="submit" name="action" value="Something">
    <input type="submit" name="action" value="Something Else">
    

    然后,服务器端,检查动作数据的值。

    【讨论】:

      【解决方案4】:

      使用此代码...

      在 JSP 文件中...

      <form action="MyServ">
                  <input type="submit" name="btn1" value="OK">
                  <input type="submit" name="btn2" value="OK">
              </form>
      

      在 Servlet 文件中..

      if (request.getParameter("btn1") != null){
             // do something
       }
      else if (request.getParameter("btn2") != null){
             // do something
       }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-14
        • 2020-11-18
        • 1970-01-01
        • 2011-11-22
        • 1970-01-01
        相关资源
        最近更新 更多