SSM-分页与CRUD

文章详细探讨了JavaWeb开发中关于分页和CRUD操作的理解,包括Page类的使用,分页原理,以及在Mapper中添加和删除方法的实现。作者提到了PageHelper作为分页辅助工具的作用,同时阐述了在控制器中如何处理删除和编辑操作,特别是删除后的页面刷新机制。此外,文章还讨论了在编辑操作中,ID作为隐藏字段的重要性。
摘要由CSDN通过智能技术生成

挣扎两天发现原来是有教程的,是自己没注意看,真的彻底心碎

重新捡回一点信心,至少最基础的整合和数据查询是清楚的

花了很多时间敲仿造其他同学的代码,也不是完全没作用!对后续技术其实已经大概了解了,补充一下细节吧,直接观察分页和crud的代码

一、分页

重点是在page这个类

结合jsp中的内容

 last单单只是指末页


这个count*()应该是指表中数据的总数,比如有130个数据返回的就是130

不是很懂分页的原理,所以对代码做了下修改,让start=2

从id=3开始,之前start=0就是从id为1开始

对count的验证我有点说不太清楚,但是一通操作下来,应该可以确定是start决定开始数值,count决定一次显示几个

控制器中真正决定框架显示的如图,和total以及last是没有关系的,这两个只是计算最后一页信息,也就是说最关键的只有一句话! 

还是不太懂具体是怎么实现的,总之理解成为模板吧

结果如上图

然后还有一个pagehelper,分页小帮手,作用很好懂 ,但是代码有点太抽象了,应该是引用的github中封装好的,暂时先不管吧


二、CRUD 

 多的就不用说了,相比最基础的整合,多了分页显示和通过表格中设置超链接进行crud操作 

说一个很巧妙很有意思,也是我没看教程之前一直没想通的地方

在mapper中注意add和delete方法,add方法的传值一直是category,而delete是id

add方法这个传值我还是不是很理解,看xml中具体的方法

我尝试过能不能把这个name删掉,是不行的会报错,为什么呢? 

问同学说是因为在add方法中增加的就是name这个属性值,是对它做出改变了,所以是传递category值并要求是其中的name属性,但是我总觉得有点怪怪的,这个 category_不是具体的数据吗,为什么会和实体类有联系呢?

可能是在xml中连接了

然后再是神奇的delete传值

看在实现类中,传的值其实还是 category类型,在没看教程之前我自己敲代码一直都是传的id值,每次都报错提示我无法获取jsp中数据的id,实际就是没能建立连接,这里多体会一下吧

在控制器中

和删除有关的代码

@RequestMapping("listCategory")
	public ModelAndView listCategory(Page page){
	
		ModelAndView mav = new ModelAndView();
		List<Category> cs= categoryService.list(page);
		int total = categoryService.total();
		
		page.caculateLast(total);
		
		// 放入转发参数
		mav.addObject("cs", cs);
		// 放入jsp路径
		mav.setViewName("listCategory");
		return mav;
@RequestMapping("deleteCategory")
	public ModelAndView deleteCategory(Category category){
		categoryService.delete(category);
		ModelAndView mav = new ModelAndView("redirect:/listCategory");
		return mav;
	}	

注意这个redirect:/listCategory,在完成删除后转向定位到再次显示jsp,相当于完成了一次刷新


然后是增加

在jsp页面下创建文本框进行直接输入


然后是最难的编辑

  

没有使用setViewName,直接传值到新的jsp页面

 

 上面三张图就是一个完整流程

editcategory可以和add方法做一下对比

add不需要id,可能是因为程序默认直接跟着添加 ?以及add方法中是不需要附加value值的

我尝试删除editcategory中id的value的值,会提示400错误,大概明白是因为更改必须要定位,但是name的value值是没有必要的!有value值只是会获取之前的name是什么

删除name的value后就是这样空白的

以及如果把id的hidden类型改成 text就能看到当前id,在当前页面更改id之后也可以更改其他行的name值 

如上图一样画蛇添足增加一个value也不是不行 

暂时就到这里 

总算是全部弄清楚了!!!!

用时:四小时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值