JSP實現選中刪除功能
選中刪除
1.實現所使用到的技術:
JavaScript做的複選框的“全選和全不選功能”;
form表單提交;
使用Bootstrap框架,在超連結按鈕做提交按鈕時,使用JavaScript:void(0)使href屬性失效;
複選框的預設值value的設定;
確認框(提示框)的使用confirm("您確定拋棄我們嗎?")。
2.核心程式碼:
全選/全不選
function checkAll(obj) {
var flag = obj.checked;
//alert(flag);
var items = document.getElementsByClassName("item");
for(var i in items){
items[i].checked=flag;
}
}
web層
String[] ids = request.getParameterValues("ids");
ContactService contactService = new ContactService();
contactService.delAll(ids);
//刪除成功後,重定向 查詢所有聯絡人資訊
response.sendRedirect(request.getContextPath()+"/findAll");
service層
public void delAll(String[] ids) throws Exception{
//1.獲取連線池物件
DataSource dataSource = JDBCUtils.getDataSource();
//2.建立jdbcTemplate例項 // template從連線池中獲取一個連線 conn1
JdbcTemplate template = new JdbcTemplate(dataSource);
//3.啟動事務管理器(將conn和當前執行緒做繫結)
TransactionSynchronizationManager.initSynchronization();
//4.獲取連線 : 獲取JdbcTemplate所使用的連線物件
Connection conn = DataSourceUtils.getConnection(dataSource); // conn1
try {
//5.將連線的事務,設定為手動事務提交
conn.setAutoCommit(false);
//===== 業務處理
for(String id:ids){ // [1,2,....]
contactDao.delById(id,template);
}
// 提交事務
conn.commit();
} catch (Exception e) {
e.printStackTrace();
// 事務回顧
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
// 將異常拋給呼叫者,告知執行失敗
throw e;
} finally {
// 將conn物件和當前執行緒解除繫結
TransactionSynchronizationManager.clearSynchronization();
// 修改為自動事務提交
try {
conn.setAutoCommit(true);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Dao層
String sql="delete from contact where id=? ";
template.update(sql,id);