【问题标题】:How to call two different methods using single button?如何使用单个按钮调用两种不同的方法?
【发布时间】:2010-08-24 08:14:39
【问题描述】:

在我的 Web 应用程序中,我有一个数据表(使用 PreparedStatement 从数据库显示)。每行都有一个编辑按钮。表格位于表格下方。如果我单击编辑按钮,该行中的数据将填充到表单中。所以,我可以编辑并保存它。

或者,我可以在表单中输入新数据并添加新行。问题是“保存”按钮。更新和插入需要不同的查询。

所以,我想调用两种不同的方法。 关于这个问题的任何想法。

附加信息: 该网页是使用 HTML 和 Java 脚本构建的。后端使用Java连接DB并获取Data。

谢谢。

【问题讨论】:

  • 抱歉,您说的不够清楚。如果您只想让表单具有两种模式,则可以使用隐藏输入设置不同的 POST 值并检查后端的值。如果您在谈论后端,我们需要更多细节。我建议您也向我们展示 HTML。

标签: java javascript html


【解决方案1】:

您可以在隐藏字段中添加已编辑元素的 ID。如果未提供 id,则为新对象,如果提供 id,则为编辑操作。显然,为了防止间谍活动,您应该用散列值替换真实 id。

【讨论】:

    【解决方案2】:

    您所需要的只是一个隐藏的输入字段,该字段最初设置为不同的值,并且在单击编辑按钮后设置为不同的值。然后您可以检查该字段的值并在保存操作中执行 INSERT 或 UPDATE。

    【讨论】:

      【解决方案3】:

      您是否在使用任何 JavaScript 库?如果您使用的是 JQuery,您可以轻松地将事件绑定和取消绑定到您的按钮。它还具有数据的概念,您可以使用它来将任何元数据附加到您的控件,如按钮。使用元数据作为按钮模式(编辑/保存)而不是隐藏字段。

      示例代码:(在页面加载期间可能是编辑)

      $("mybutton").data("mode", "edit"); //data is a dictionary for key/values
      $("mybutton").click(EditFunction);
      

      【讨论】:

        【解决方案4】:

        您应该考虑使用javax.persistence.* 和适当的数据库操作框架。

        如果你想坚持使用纯 SQL,你应该有你的表行的某种状态信息。它是否已经分配了主键?这个密钥是由数据库生成的吗?比数据库中已经存在的行和您的方法可以生成UPDATE 语句。如果尚未分配密钥,请使用 INSERT

        另一个好主意是用简单的 Java Bean 封装查询结果,用于显示数据。简单的对象允许您存储和处理额外的数据和信息 - 在生成正确的 SQL 语句时可以非常方便。

        【讨论】:

          【解决方案5】:

          或者,我可以在表单中输入新数据 和一个添加新行。问题是 “保存”按钮。更新和插入需求 不同的查询。

          是否可以使用相同的查询进行插入和更新???

          【讨论】:

          • 这可能吗?如果是这样的意思,请在这里解释一下。谢谢
          • PLSQL 知道 MERGE 查询可以解决问题。也许还有其他数据库?
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-16
          • 1970-01-01
          相关资源
          最近更新 更多