有一个输出HTML5页面的jsp。 HTML5有两个按钮 - “添加”和“保存”。 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();
}
});
}
问题是 - 如何将javascript结果集中的记录传递给Spring控制器,以便在单击“添加”按钮时控制器的“myPojoList”可以使用它?
答案 0 :(得分:1)
我有几个想法
将5个记录形成一个json字符串并发布到控制器,并将json解组为对象并存储在Oracle中。
将5个记录形成分隔字符串,例如id1,name1,address1|id2,name2,address2
等。在服务器端,您可以标记化并存储在Oracle中。
JSON具有标准格式,因此这将是更好的选择。用于存储在HTML5中的javascript可用于在客户端中形成此字符串,并且一旦从客户端提交读取并推送到控制器。