0

HTML5ページを出力するjspがあります。HTML5 には、「追加」と「保存」の 2 つのボタンがあります。HTML5 ローカル ストレージ機能は、オフライン データの保存に使用されます。

「追加」ボタンをクリックすると、レコードが追加されます。したがって、ユーザーが jsp ページのフィールドに 5 回入力し、[追加] ボタンを 5 回クリックすると、HTML5 テーブルに 5 つのレコードが追加されます。[追加] ボタンをクリックすると、結果セットにレコードを追加する 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();
        }
    });

}

問題は、「追加」ボタンがクリックされたときにコントローラーの「myPojoList」で使用できるように、JavaScript の結果セットから Spring コントローラーにレコードを渡すにはどうすればよいかということです。

4

1 に答える 1

1

いくつかの考えがあります

  1. その 5 つのレコードを json 文字列に形成し、コントローラーに投稿して、json をオブジェクトにアンマーシャリングし、Oracle に格納します。

  2. ..などのような区切り文字列に 5 を記録するフォームid1,name1,address1|id2,name2,address2。サーバー側では、トークン化して Oracle に保存できます。

JSONには標準形式があるため、それがより良いオプションになります。HTML5 に格納するために使用される JavaScript を使用して、クライアントでこの文字列を形成し、一度送信してクライアントから読み取り、コントローラーにプッシュすることができます。

于 2012-09-14T22:26:37.377 に答える