Html.ActionLink 添加htmlAttribute的参数,上面的ActionLink可以这样写:
@Html.ActionLink("删除", "Delete", new { id = item.id}, new { onclick = "confirm('你确认删除吗?')" })
本系统是在网络上建立一个Web系统专门提供通讯簿管理功能,以便随时随地通过网络对通讯簿进行管理,可以更快速便捷的查找信息,查找快速,维护方便,丢失手机也不会丢失联系方式。本系统主要功能是能够对联系人的增加删除,并可以对其发送信息,构建一个聊天室,设立群组,方便更好的沟通。本系统的开发使用的是MVC模式,主要开发环境是MyEclipse。前台页面的的编写主要使用JSP技术,页面的美化主要使用CSS和Bootstrap,其中Bootstrap主要来美化表格、表单。
用户点击登录输入账号和密码,系统进行验证,如果确认信息没有错误,则成功登录,用户可以查询个人信息,可以添加和删除好友,管理用户信息,用户与用户之间可以互相发送信息;管理员登录也需要系统验证,成功登录后可以修改管理员信息,还可以添加普通用户
我会将在编写过程中出现的一些小知识点也进行总结概括的。此项目基于的框架是:springmvc+mybatis
(1)controller
/**
* 批量删除 batch
*/
@RequestMapping("/batchDeletes")
@ResponseBody
public void batchDeletes(HttpServletRequest request,HttpServletResponse response){
String items = request.getParameter("delitems")
List<String>delList = new ArrayList<String>()
String[] strs = items.split(",")
for (String str : strs) {
delList.add(str)
}
userService.batchDeletes(delList)
}
代码思路:
从前台勾选的选择框中传过来的值用“,”分开,然后遍历存放到delList集合里面,直接删delList集合里面的所有字符串。
(2)service
/**
* 批量删除
*/
void batchDeletes(List delList)
(3)impl
/**
* 批量删除
*/
@Override
public void batchDeletes(List delList) {
userMapper.batchDeletes(delList)
}
(4)mapper
/**
* 批量删除
*/
void batchDeletes(List delList)
(5)mapper.xml
<!--批量删除 -->
<delete id="batchDeletes" parameterType="java.util.List">
DELETE FROM tp_user where uname in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
如上的mybatis指代的意思如下:
foreach元素的属性主要有 item,index,collection,open,separator,close。
item表示集合中每一个元素进行迭代时的别名. (直接找到对应的delList集合里面的所有元素,item="item"中的item(后一个)必须与#{item} 中的item一致)
index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置.
open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔 符.
close表示以什么结束.
前台代码:
user_list.jsp
//全选
function selectAll(){
if ($("#SelectAll").is(":checked")) {
$(":checkbox").prop("checked", true)//所有选择框都选中
} else {
$(":checkbox").prop("checked", false)
}
}
//批量删除
function batchDeletes(){
//判断至少写了一项
var checkedNum = $("input[name='subcheck']:checked").length
if(checkedNum==0){
alert("请至少选择一项!")
return false
}
if(confirm("确定删除所选项目?")){
var checkedList = new Array()
$("input[name='subcheck']:checked").each(function(){
checkedList.push($(this).val())
})
$.ajax({
type:"POST",
url:"web/user/batchDeletes.action",
data:{"delitems":checkedList.toString()},
datatype:"html",
success:function(data){
$("[name='checkbox2']:checkbox").attr("checked",false)
art.dialog.tips('删除成功!')
setTimeout("location.reload()",1000)//页面刷新
},
error:function(data){
art.dialog.tips('删除失败!')
}
})
}
}
<table class="tb_list">
<tr>
<td align="center"><input type="checkbox" id="SelectAll"
onclick="selectAll()" />全选</td>
<th>序号</th>
</tr>
<c:forEach items="${page.list }" var="items" varStatus="idx">
<tr class="row_${idx.count%2+1}">
<td style="display:none">${batch.id}</td>
<td align="center"><input type="checkbox" id="subcheck"
name="subcheck" value="${items.UNAME }" />
</td>
<td>${page.onePageCount*(page.currentPage-1)+idx.count }</td>
<tr>
</table>
备注:此代码我传值的主键是用uname来删除的,实际应该用id作为主键,因为id的unique
,uname若重名,则就会出现bug,相信大家都明白,就不再过多解释了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)