0

有一个输出 HTML5 页面的 jsp。HTML5 有两个按钮——“添加”和“保存”。HTML5 本地存储功能用于存储离线数据。

“添加”按钮在单击时添加一条记录。因此,如果用户在 jsp 页面上填写字段 5 次并单击“添加”按钮 5 次,则将 5 条记录添加到 HTML5 表中。单击“添加”按钮时,将运行一个将记录添加到结果集中的 javascript。因此,对于 5 次点击,javascript 结果集包含 5 条记录。

单击“保存”按钮时,必须将 javascript 结果集中的所有 5 条记录插入到 Oracle 数据库中。为此,必须将结果集中的记录列表传递给 Spring 控制器。

Spring 控制器已使用 batchUpdate api 进行编码。

public void insertListOfPojos(final List<MyPojo> myPojoList) {

    String sql = "INSERT INTO "
        + "MY_TABLE "
        + "(FIELD_1,FIELD_2,FIELD_3) "
        + "VALUES " + "(?,?,?)";

    getJdbcTemplate().batchUpdate(sql, new BatchPreparedStatementSetter() {

        @Override
        public void setValues(PreparedStatement ps, int i)
            throws SQLException {

            MyPojo myPojo = myPojoList.get(i);
            ps.setString(1, myPojo.getField1());
            ps.setString(2, myPojo.getField2());
            ps.setString(3, myPojo.getField3());

        }

        @Override
        public int getBatchSize() {
            return myPojoList.size();
        }
    });

}

问题是 - 当单击“添加”按钮时,如何将记录从 javascript 结果集中传递给 Spring 控制器,以便控制器的“myPojoList”可以使用它?

4

1 回答 1

1

我有几个想法

  1. 将 5 条记录形成一个 json 字符串并发布到控制器并将 json 解组为对象并存储在 Oracle 中。

  2. 将 5 条记录形成为分隔字符串,例如id1,name1,address1|id2,name2,address2..etc。在服务器端,您可以标记化并存储在 Oracle 中。

JSON 具有标准格式,因此这将是更好的选择。用于存储在 HTML5 中的 javascript 可用于在客户端中形成此字符串,并在提交后从客户端读取并推送到控制器。

于 2012-09-14T22:26:37.377 回答