新闻公布系统笔记二

1.批量删除的实现:首先是前端的checkbox,实现点击最上面的复选框。会全选或者取消以下的复选框选择状态。

通过jquery实现,涉及了一个属性选择器,用来选择结点或者设置属性。prop法。$("input[name='commentIds']").prop("checked",true);

这一句是设置全部name属性是commentIds的结点checked属性为true。代码例如以下:

$(document).ready(function(){
		
		$("#checkedAll").click(function(){
			if($(this).prop("checked")==true){
				$("input[name='commentIds']").prop("checked",true);
			}else{
				$("input[name='commentIds']").prop("checked",false);
			}
		});
		
	});
  1.2也许以下全部已经选择的记录
var chk_value=[];
$('input[name="commentIds"]:checked').each(function(){
chk_value.push($(this).val());
});

     须要把数组中统计的记录id用","切割。传给后台,然后批量删除。这样的方式就能够   var commentIds=chk_value.join(",");

     后台返回json格式的数据。显示删除了多少条记录,然后又一次请求一次servlet,获取更新后的记录。

代码例如以下:使用ajax请求。eval把后台传的json转换成js对象。

window.location.href又一次请求。${pageContext...}是jsp中的el表达式

if(confirm("确认要删除这些评论吗?")){
			$.post("comment?

action=delete",{commentIds:commentIds}, function(result){ var result=eval('('+result+')'); if(result.success){ alert("成功删除"+result.delNums+"条数据"); window.location.href="${pageContext.request.contextPath}/comment?action=backList"; }else{ alert(result.errorMsg); } } ); }

1.3  dao写法    返回删除记录数  用inkeyword批量删除,ids用,切割

public int commentDelete(Connection con,String commentIds)throws Exception{
		String sql="delete from t_comment where commentId in ("+commentIds+")";
		PreparedStatement pstmt=con.prepareStatement(sql);
		return pstmt.executeUpdate();
	}

2.带文件上传的form  通过 item.isFormField() 推断是普通的表单域   还是文件上传    假设是普通表单域 要通过item.getString("utf-8")

   获取真正的内容。

FileItemFactory factory=new DiskFileItemFactory();
ServletFileUpload upload=new ServletFileUpload(factory);

List<FileItem> items=null;
try {
items=upload.parseRequest(request);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Iterator itr=items.iterator();
News news=new News();
while(itr.hasNext()){ } 

上面是通过fileupload上传文件的标准写法  。

获取普通表单内容和上传的图片:

                //普通表单域处理

if(item.isFormField()){
String fieldName=item.getFieldName();
if("newsId".equals(fieldName)){
if(StringUtil.isNotEmpty(item.getString("utf-8"))){
news.setNewsId(Integer.parseInt(item.getString("utf-8")));
}
}else if("title".equals(fieldName)){
news.setTitle(item.getString("utf-8"));
}
}//当上传图片处理。而且上传图片名字不为空时才处理

else if(!"".equals(item.getName())){
try {
String imageName=DateUtil.getCurrentDateStr();
news.setImageName(imageName+"."+item.getName().split("\\.")[1]);
String filePath=PropertiesUtil.getValue("imagePath")+imageName+"."+item.getName().split("\\.")[1];
item.write(new File(filePath));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

3.改动新闻时,类别列表自己主动相应当前新闻的类别    当newsType.newsTypeId==news.typeId 就把这个option默认选中

注意当<option selected>tt</option>  这个option就选中了   完整代码例如以下:

<select id="typeId" name="typeId">
<option value="">请选择新闻类别</option>
<c:forEach var="newsType" items="${newsTypeList }">
      <option value="${newsType.newsTypeId }" ${newsType.newsTypeId==news.typeId?'selected':''}>${newsType.typeName }</option>
</c:forEach>

</select>

 显示信息的单选框 和数据库中的信息相应  假设isHead==1  那么把这个checkbox选中

  <input type="checkbox" id="isHead" name="isHead" value="1" ${news.isHead==1?'checked':'' }>头条

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值