how2j.cn

步骤 1 : 用于删除的超链   
步骤 2 : 删除前的确认操作   
步骤 3 : 删除调用CategoryServlet.delete()方法   

步骤 1 :

用于删除的超链

edit
增值内容,请先登录
完整的J2EE模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE一整套技术栈, 从无到有涵盖全部147个知识点,475个开发步骤, 充实J2EE项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
用于删除的超链
步骤 2 :

删除前的确认操作

edit
增值内容,请先登录
完整的J2EE模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE一整套技术栈, 从无到有涵盖全部147个知识点,475个开发步骤, 充实J2EE项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
$(function(){ $("a").click(function(){ var deleteLink = $(this).attr("deleteLink"); console.log(deleteLink); if("true"==deleteLink){ var confirmDelete = confirm("确认要删除"); if(confirmDelete) return true; return false; } }); })
$(function(){
	$("a").click(function(){
		var deleteLink = $(this).attr("deleteLink");
		console.log(deleteLink);
		if("true"==deleteLink){
			var confirmDelete = confirm("确认要删除");
			if(confirmDelete)
				return true;
			return false;
			
		}
	});
})
步骤 3 :

删除调用CategoryServlet.delete()方法

edit
增值内容,请先登录
完整的J2EE模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE一整套技术栈, 从无到有涵盖全部147个知识点,475个开发步骤, 充实J2EE项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
使用爬虫已经被系统记录,请勿使用爬虫,增大封号风险。 如果是误封 ,请联系站长,谢谢
public String delete(HttpServletRequest request, HttpServletResponse response, Page page) { int id = Integer.parseInt(request.getParameter("id")); categoryDAO.delete(id); return "@admin_category_list"; }
	public String delete(HttpServletRequest request, HttpServletResponse response, Page page) {
		int id = Integer.parseInt(request.getParameter("id"));
		categoryDAO.delete(id);
		return "@admin_category_list";
	}


HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2020-12-13 本例代码改进完善中 , 有一个小小的坑 , 值得我们注意
那年的雪




在做删除操作时,如果从表中有cid记录,那么会: 1. 数据库操作会失败; 2. 控制台会打印异常; 3. 由于在DAO中,delete方法的异常进行了捕捉,而未处理; 4. 从而造成继续执行后续删除磁盘图片文件; 为此,写了一段子数据源判断,来规避异常: 1. 从表的list查询,通过返回值获知从表是否有记录; 2. 如有记录,就进行重定向到"cid相应属性列表页面"; 3. 否则,执行后续数据库信息删除和图片删除操作;继而重定向; 功能 , 详见代码; 关于跳转的地址,根据实际情况进行调整;
	@Override
	public String delete(HttpServletRequest request, HttpServletResponse response, Page page) {
		Integer id = Integer.parseInt(request.getParameter("id"));

		// 从表是否存在数据,前置判断;
		List<Property> beans = propertyDAO.list(id);
		if (0 < beans.size()) {
			System.out.println("从表又数据,将跳转到从表(属性list页面)");
			return "@" + "back/listProperty.html?cid="+id; // 重定向
		}

		// 数据库删除
		categoryDAO.delete(id);
               // 删除磁盘图片
		File f = new File(savePath + File.separator + id + ".jpg");
		f.delete();

		return "@" + "back/listCategory.html"; // 重定向
	}

							


2 个答案

那年的雪
答案时间:2020-12-13
如果从表有记录,跳转到相应属性页面; List<Property> beans = propertyDAO.list(id); 上述数据库查询操作,会被动的执行两次;这样是不妥当的; 我觉得一个比较好的方法,可以是将第一次查询的结果,保存起来; 在跳转到相应属性页面后,直接获取这集合,不用再次数据库查询; 至于这个引用怎么转过去?我觉得通过: 1.sessionID这种形式进行完善,应该是讲的通的; 2.或者采用token令牌来取值,应该也是一种方式; 不过,这种低频的使用,忽略了,也无关紧要.

那年的雪
答案时间:2020-12-13
补充 : savePath 在本例中多处会用到 , 申明为final的类属性; 所以类方法里就没有申明了,拿来用即可;



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2020-03-22 删除目录的同时,删除img/category 目录下对应文件的解决办法
dazhu_




亲测有效
@Override
	public String delete(HttpServletRequest request, HttpServletResponse response, Page page) {
		int id=Integer.parseInt(request.getParameter("id"));
		categoryDAO.delete(id);
		File imageFile = new File(request.getSession().getServletContext().getRealPath("img/category")+"/"+id+".jpg");
		imageFile.delete();
		return "@admin_category_list";
	}

							


1 个答案

how2j
答案时间:2020-03-22
good, 不过是想表达删除分类的同时吧。



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2019-11-09 为什么我这里为空判断和删除确认都没有实现?代码完全一样,甚至我都直接复制代码了,也还是这样,真的搞不懂。
2019-02-28 categoryservice中delete方法为空,仍然可以删除数据?
2019-01-02 这个自定义属性deletelink,是用来与其他非删除超连接进行区分的吧?


提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 10 条以前的提问,请 点击查看

提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 实践项目-天猫整站J2EE-删除 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 496725845
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图