【问题标题】:Edit form input details in jsp在jsp中编辑表单输入细节
【发布时间】:2015-06-04 08:50:10
【问题描述】:

我制作了一个输入表单,它使用 JSP 和 Servlet 接受输入并将其存储在数据库中。 该表单有一个 EDIT DETAILS 按钮。 我希望当用户单击该按钮时,表单应自动填充旧值并允许用户更改这些值。并且新值应该在数据库中更新。 这是表格的屏幕截图。 请帮忙...

【问题讨论】:

  • 希望对您有帮助 :) javaknowledge.info/…
  • 帮助什么?你要的东西比较琐碎,你哪里遇到问题了?
  • 您能否更具体地说明您目前所做的工作以及您需要帮助的地方?其简单的 crud 操作,首先在页面加载时,您将从 DB 中获取值并在 JSP 中填充。跟踪任何更改,如果更改,将更新数据保存回数据库。
  • 当页面加载时,上部表单为空,并且从数据库中显示材料详细信息。当用户单击编辑详细信息时,我希望 DB 中的先前详细信息应显示在上部表单中,并且用户应该能够更改这些详细信息,然后最终提交。
  • @SheetalMohanSharma 如何跟踪更改?那是我的问题..

标签: jsp servlets


【解决方案1】:

这取决于你想做什么。您可以在客户端或服务器端进行。对于客户站点,请参阅下面的帖子。 What is the best way to track changes in a form via javascript?

服务器端

如果你是 ORM,那么你可以使用 SaveOrUpdate() 调用。阅读它的作用。

制作 2 个 dataTransfer 对象,我们可以将它们称为 loadTimeObject 和 submitObject。

这里假设流和域模型。

  1. 编辑详细信息按钮单击 -> 获取行 ID 或主键/唯一 行/或 ID。
  2. 通过调用 Ajax 将数据加载到字段中,或者如果 JavaScript 对象中已有数据,则使用行/对象 ID - 将此称为 loadTimeObject
  3. 用户进行/不进行更改并单击提交。将表单字段加载到 submitObject。在 Java 中验证 loadTimeObject 和 submitObject 是否不同?跟踪哪些字段发生了变化并将它们保存在数据库中。

提示:您可以使用 Apache Commons Beanutils compareObjects(Object loadTimeObject , Object submitObject) 方法。

使用 java 反射来比较对象。

public static <T> void Compare(T source, T target) throws IllegalArgumentException, IllegalAccessException {

            if(source == null) {
                throw new IllegalArgumentException("Null argument not excepted at this point");
            }

            Field[] fields = source.getClass().getFields();

            Object sourceObject;
            Object targetObject;

            for(Field field : fields){
                sourceObject = field.get(source);
                targetObject = field.get(target);

                //Compare the object

            }

        }

【讨论】:

  • 感谢您的回答。我用其他方式解决了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多