1 做基本页面,先把数据导入,还有相关依赖,8个。
1.1首先改配置文件
image
27271476b2f7869aa78caa2c2d1c40c.png209da6c6e7697f287e3f88dd941b55f.pngfd6da227534824b7cbccd3a7e4a45f6.png
2.1 先创建控制类,负责管理所有的页面请求
973309f1cf95bf9fef4e937e8e944bb.png
可以启动测试了,看一看,基础页面是否搭建完成。
3a45404f36feab38c8cc3ba168547cb.png
这是应该查询到 的界面,以及接下来的思路。日志管理就是一个dom元素。
接下来就是技术解决了。
455897b3bb858bba90f00b3fd3cb9f8.png
点击发起异步请求。
操作:1 在starter.html注册事件。
先获取日志管理的Id(load-log-id),就是在F12界面打开去看。在这个按钮点击注册函数。下一句解析,jquery中load函数向服务器发送ajax函数,直接把url加载过来的函数更新指定的的那部分,如图红色点。
b6930a72ac88de599d40857a2d742a6.png
对应的写函数,下面有错,少写和箭头
f2b602bfd487b3dfa8e31ca75023026.png
那么url是哪一部分,加进去,要加载哪一部分到指定位置。
ff45c5f5436a40fc673b2114e4f6499.png
这个页面,希望放在templates,去处理,所以放那里。
这个目录下,是不能直接访问的,所以要去配置一个Controller了。
这个是页面请求,所有的页面请求都是在PageController里面。
操作:e6c522f0179b8d79339500d991640c1.png
对应希望到的路劲。可以启动测试。
6e2ab238d877c871780e2736e3740c7.png
日志列表页面加载完成,就是log-list,还希望日志页面j加载完成之后,在把分页页面显示在这里,局部刷新,ajax。回到PageController里添加一个返回的方法35ee2bdbdab34767b989c2769536dec.png这个是服务端,下面需要在客户端log-list。
log-list页面里是有一块区域来储存分页元素的24cf1b4cc1ecde81e5aeb7546d5e0cf.png
因为其他地方都需要用,所以写个函数拿出去。2865c9dec70f3efc58abb951b1d3184.png
让所有的都可以拿到分页页面,加载到doPageUI。作为全部的一部分,所以可以使用$.
优化版写法,js加载后,在去实现这个函数。1599977121(1).png
操作:可以把
starter.html共性的提取出来,因为,都是加载不同模块的id,不日日志管理,菜单管理这些,所以可以提取共性,第二张代码。
1599977384(1).png
在添加,只需要改括号里面就可以了。选择目标,可以基于id去选,也可以在class后面的就是类选择器,可以拿一个也可以拿两个!看不懂,去F12写一写
bc2735d75c10d802a8988254dad339d.png
那个#id就是上面那个load—log-id一样的1599977668(1).png
跟着时序图去写。
1599977420(1).png
下面是一样的写法
1599977873(1).png
接下做的步骤!
1599978483(1).png
设计原理:
从数据层开始写,放在一个pojo里面去储存,通过list去,不是把所有记录都取出来,按页去取,因为不可能把所有记录都显示出来,那就得计算分页,那么就需要总记录数,先把总记录数取出来,才能分页。@Repository是形容类,代表是在数据层pojo。数据层要返回业务层接口那边,在业务层就涉及到了计算,给了一个总记录数就能计算总页数。在业务层收到了List集合和row count两个数据所以还需要进行封装(也可以用map)。list是传到了业务层,接口这边,业务层返回到控制层也需要进行数据封装,因为还有错误的数据,是正常还是错误,所以也需要封装。让客户端需要辨识出来,加一个状态码。
当前页是基于点击事件,进行改变的,比如首页,上一页,下一页,尾页,而总记录数是数据库总记录数,总页数根据总记录数去计算,不是查询出来的。
操作:1 封装数据库返回数据!所有封装进行序列化接口,将对象转化为字节方便储存或传输d0e6b84ae02b99ae079d1d0f655fb05.png
2接口
36a88a6fc4fe63a2b65633e![b8c7b59ec589e977925ab0d4e0eea21.png
这个是需要查询出来的
1599980074(1).png
一行记录映射一个对象,参数的设计应该有它的名字,起始位置,从哪里开始查,根据别设计写。
3建立映射文件
1599982371(1).png
所以的select都必须有一个resultType,这是一行映射一个记录的意思
名字跟记录相匹配的,就记录一下。
limit从什么位置开始取,去几条。
order by降序排序715fe0c0a9ed84f72276be4ae979d62.png
可以提取共性,1599983564(1).png可以测试。
建立测试类1599984251.png
取出admit的记录,从0开始,拿3条
1599984336(1).pn![1599984511(1).pngg](/img/bVbOIk1)
数据层结束,开始业务层。
操作:在接口写查询方法。参数,返回值的思考看
1599984798(1).png客户端会传什么值,比如当前的页码,用户名啊。不知道返回值是啥就用Object。
这个返回值要封装数据层返回的数据,以及经过计算的页码值,所以可以创建一个对象,在建立一个类(解决要返回的值)。如果返回值很大。int值满足不了,可以改long。d3468ca15e284b4db15b4cb16183ed1.png
records当前页记录。psgeCount总页数,rowCount总记录数,需要计算总页数还需要一个每页显示多少记录pageSize.还会显示当前页码值。1599985513(1).png
优化:让其它除了日志模块也可使用!
1599985608(1).png
变成泛型类1599989334(1).png
T就是一个变量!,以后可以写多个
对应的也要改,传进来的是SysLog!这个返回值就是封装查询和计算结果的一个分页对象
1599989507(1).png
继续操作:建立impl实现类
1599990418(1).png
startIndex开始页的数,pageCurrent当前页码数,pageSize一页记录多少。然后需要封装这个数据,所以创建对象。通过算法求总页数,总记录数除以每页显示数。1599990657(1).png
返回的是po。
如果,拿到的结果是0,就没必要执行下面的程序,所以。username是可以为空的,而pageCurrent是不能为空的!这个抛出异常是非检查异常
1599990933.png
这个到运行时才会报错,所以创建一个类去继承RuntimeException,也要序列化,解决异常1599991103(1).png
可以按父类来生成构造函数1599991103(1).png
不知道就都生成。1599992211(1).png
要简化流程,在PageObject设置有参和无的构造函数,@NoArgsConstructor就是无参构造。因为这个其他的页码也是可以使用的 ,所以在公共最好。
1599992750(1).png
放在构造方法内部去计算,意思是把计算那部分也放在公共里去1599992720(1).png
继续测试类测试1599992943(1).png
业务层把数据给控制层了,数据有对有错误的。
1599993140(1).png
传统写法,为了给数据添加一个状态,增加一个类响应到控制端。1599993420(1).png封装调用简单。
之后就可以改变返回值为JsonResult
1599993829(1).png
进阶,不做try,catch的重复性工作,处理异常的web包,加特殊标记
1599994094(1).png
。。。
1599993723(1).png
测试方法8fd5e57502026ab47244128a5567140.png
客户端的呈现
哪里需要呈现数据1599994614(1).png
页面加载完成之后还想进行加入页面操作直接加函数在原有位置。
在log_list页面在!
b35c69c76298ce80b6ff179b8c09838.png0cc6fe7e7d28bcf87053e54dc4b9bf9.pngb1ec503b17f462fbdb0056ed3c7130d.pngb1ec503b17f462fbdb0056ed3c7130d.png55ebf95700ef8a9b859f80435b158ae.png72cf8cb13239706a0d086c69006f1c6.png
在配置页面,page.html文件下写公共的,通过类选择器获得数据。1599995809(1).png
后面就是事件处理了。


伍六七
1 声望0 粉丝