新闻发布系统笔记二

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写法    返回删除记录数  用in关键字批量删除,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‘:‘‘ }>头条

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-11 09:57:46

新闻发布系统笔记二的相关文章

牛腩新闻发布系统笔记——怎么写CSS

根据这牛腩学习敲新闻发布系统已经有一段时间了,挺佩服牛腩的,讲那么多东西,我听着也不觉得枯燥,反而有种,一不留神就会错过很多东西的感觉,所以有些地方也是重复又重复的在看. 这篇博客就总结总结小编在学习牛腩新闻发布系统的时候一些笔记.可能知识还比较原生态,but who cares.现在先提炼出来,以后慢慢的体会和升华吧. 牛腩一部分可以说是和机房相似,也是让我从.net到c#的一个过渡.中间一部分就是讲div +css了.里面的知识说多也不多的,根据不同的需求,它又有各种变形和组合,这加起来就有

新闻发布系统笔记一

1.如果字符串太长,想实现鼠标放上去提示出所有的文字,默认显示一部分可以使用这种方法: <td><a title="${commentBack.content }">${fn:substring(commentBack.content,0,15) }...</a></td>    a标签的title属性可以满足需要,fn是jstl的函数标签. 2.分页时要先查询出记录总条数,有时候需要根据条件查询出总条数,所有条件使用and连接,执行sq

牛腩新闻发布系统总结(二)--相对路径与绝对路径

这个问题是在加载的过程中遇到的,明明已经写好了路径,可是总是加载不了图片,究其原因,还是路径的问题,下面就来区别一下相对路径和绝对路径: 关键区别:在于描述目录路径时,所采用的参考点不同 特殊符号: "." -- 代表目前所在的目录,相对路径. <img src="./Page2Image.jpg">或者<img src="Page2Image. jpg"> ".." -- 代表上一层目录,相对路径.

【牛腩新闻发布系统 二】发布后,防火墙关还是不关?

在对牛腩进行发布的时候遇到了问题,别人不能访问我发布的网站.这有个特别简单的办法,那就是直接把防火墙关闭不就得了吗?可是关闭了防火墙,我们的系统就不受保护了,别人可以随意访问我们的电脑啊,这太不安全了.所以我们要想办法在不关闭防火墙的前提下,给其他用户一个权限,他只能访问这一个端口的网站,其他的不能访问,那就要对防火墙进行设置. 1.依次打开"控制面板"--"系统和安全"--"Windows防火墙"如下图,选择"高级设置" 2

新闻发布系统(二)

新闻发布系统 首先我将先介绍这个新闻发布系统的基本结构:  index.jsp:登陆界面  main.jsp:添加新闻的页面  pub.jsp:发布信息的页面  display:显示所有的新闻  即当你从index -> main -> display 走一趟你基本就可以完成一个新闻发布系统的基本功能了! 首先,肯定就是登陆了,之前不用连接数据库,写死就可以了,现在要连接数据库,其实也挺好写的,下面就看看是怎么连接数据库的吧(数据库我用的是MySQL) LoginImpl log=new Lo

安卓项目-利用Sqlite数据库,开发新闻发布系统

本教程致力于程序员可以快速的学习安卓移动端手机开发. 适合于已经习得一种编程语言的同仁. 更多志同道合,想要学习更多编程技术的大神们. 小弟不才,麻烦关注一下我的今日头条号-做全栈攻城狮. 本文章是基于上篇文章基础之上进行深入学习的.程序员带你学习安卓开发-XML文档的创建与解析 Sqlite数据库: Sqlite数据库是在安卓中使用较广泛的数据库.其为简单.轻巧的Sql类文件型数据库.因以简单的文本形式保存,所以安全性不是很高.只要拿到sqlite数据库文件就可以得到数据.所以这就决定了sql

牛腩新闻发布系统---外键约束下如何删除记录

一.为什么使用外键? 查了些资料,八个字"保持完整性.一致性",结合我之前做的重构机房收费系统,我的理解是"防止相关表中数据没有关联而变得孤立,最终导致数据冗余",得出这个结论是上次让贾丽敏帮忙点系统时候我最深刻的感受,因为我的数据库关系图中辣么多张表却没有丝毫关系-- 既然官方解释是"完整性和一致性",就先来说明一下: 对于完整性和一致性,不少人都混为一谈了. 完整性(integrity)更多是针对实际业务来说的,比如说一个职员ID,不能在一个

牛腩新闻发布系统——真假分页

牛腩新闻发布系统已近尾声,牛老师重磅推出真假分页作为压轴,足以见得分页的重要性.我们就一起看一下真假分页的实现以及各自的特点. 一.分页简介 当我们显示足够大的数据量时,所有数据显示在一页上,会造成不必要的麻烦,本着为用户服务的态度,我们往往采用分页显示的处理办法.分页主要分为真分页与假分页. 假分页: 从数据库一次性取出所有数据绑定到控件上,再将所有数据根据每页显示记录条数进行分页.当数据量 比较大时,这种分页方法会造成查询速度, 使用户体验度降低,但是跳页速度较快. 真分页:在执行查询操作的

Maven+Hibernate+Spring+Spring MVC开发新闻发布系统

使用Maven+Hibernate+Spring+Spring MVC开发新闻发布系统 课程学习地址:http://www.xuetuwuyou.com/course/163 课程出自学途无忧网:http://www.xuetuwuyou.com 课程介绍 一.课程用到的软件: 1.jdk 1.8 2.eclipse neon 3.tomcat 8 4.jetty 5.MySQL  6.navicat 9+ 二.课程涉及到的技术点 1.Maven基础 2.Maven高级 3.Hibernate