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 コントローラーにレコードを渡すにはどうすればよいかということです。