7 、菜单查询与分页
流程图
老师的 菜单跳转方法
public class BaseServlet extends HttpServlet {
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String requri = req.getRequestURI();
String methodName = requri.substring(requri.lastIndexOf("/")+1);
Method mymethod = this.getClass().getMethod(methodName,HttpServletRequest.class,HttpServletResponse.class);
mymethod.invoke(this,req,resp);
this 是指
public class MenuServlet extends BaseServlet {
为什么这么写,他就会去调用父类里面的service方法呢?
1、我们一般自己继承Httpservlet 之后,
2、我们一般可以直接重写doGet doPost
3、service 是用来做方法分发的
4、我们没有自己继承重写
5、但是为什么doGet doPost会自己执行啊
6、因为在他父类里面重写过
7、那如果我作为一个子类的话,我不重写父类里面的方法,会有什么效果呢
子类会直接继承下来
并且service 会自动触发
优先自动对用的都是service方法
!!! 为什么我获取不到地址
如果配置(“/prod/*”) 里面有 星 的话
这种/ 星 或者 叫模糊匹配
他不认为这个是servlet的配置地址
会被直接忽略掉
好吧,我的还是不好使
requesturl 是获取当次用户敲的请求地址
反射的时候要传实参
如果用户瞎敲地址
注意,仅仅只覆盖方法,找不到,其他方法,还需要打印报错信息呢
1、点击不同子菜单,内部通过路由跳转不同组件
router不写就是flase,写就是开启
2、element标签与代码位置
比如下面这个位置
v-for加回el menu item
不需要 《a》 标签了
:index 需要字符串,因为连接本身就是字符串了,所以不需要转换为字符串
转换字符串 数字+ ’ ’
2、根据路径,建立对应组件
2.1、建立对应组件
2.2、可以建立在文件夹里,方便分类
2.3、记得配置路由的时候别忘了有文件夹
3、测试跳转
已经可以了
4、子路由(只替换一部分)
因为跳转的子组件也是这个结构
再在组件里面写一遍很麻烦
使用子路由,共用Main组件里面的上面和左边的条
4.1只切换中间main的显示部分 页面配置方法
替换哪个部分,就在哪个部分添加
子路由 路由文件配置方法
配置方法没错,如果无效可能是没有保存上
5、菜单管理 遍历列表数据
1、实现样式目标
2、目标
1、里面放列表数据,
2、列表要和后台数据搭配起来
3、后台servlet
3.1判断是否是null,判断是否是空值
qpidstr!=null&&!"".equals(qpidstr)
3.2 equals 和 == 的区别
引子:添加链接描述
equals是Object类的一个方法,用来比较两个对象的内容是否相等。
“==”是用来比较两个对象的内存地址。
3.3 我的妈啊
1、Dao 方法
通过页码查询菜单
List<Menu> menus =new ArrayList<Menu>();
4、遍历table数据
先找一个表格
放在这里
配置vue部分
列表数据应该是这样的
列表数据遍历值
列表key出错
上级菜单名称怎么办
这里只有编号
给用户显示编号肯定不行
需要把上级菜单名称也给查出来
把父菜单名称放在后面
4.2、表关联(在实际业务里做表关联是比较频繁的)
这种子数据中的父名称都是不直接存,都是存码,查的时候去连接,这是数据库保存给则
自连接
只要父菜单名称,并且 如果 名称是空值 则 赋值 无 (空值转换函数)
4.3表格数据填写
4.4 获得后台数据
4、样式问题
老师是直接就找到这个地方的,我觉的他是通过标签名看出来的
5、图标显示问题
table 自动遍历的时候,怎么往上面加元素标签呢
官方解决办法
你看这个官方样式 这个摁钮肯定遍历的时候是没有的,是硬加上去的
6、数据插槽
在什么时候使用 slot-scope
1、在组件自动进行遍历的时候,我没有办法操作当前行的数据
2、但是我们要对这个内容进行一些修改的时候
3、要写一些内容,改一些内容,加一些逻辑的时候
4、我们就可以使用这个插槽
5、用v-slot,好像最新的也改了,再说
!!!!!!!!!!!6、插槽 这个写的很好
原本样式
让它变得更好看
其他样式可以自己整
让它显示图标
等会想办法,把图标套在里面
7、分页
后台需要传的数据
分页组件
显示哪些摁钮
同级嵌套
代码绑定的数据和方法做一下对应
根据前端需要的数据,编写servlet方法,确定返回数据
绑定页码数据,直接写成一个对象
分页组件的那两个方法
具体流程 当我们触发 当前页数改变 和 当前页码数据条数 改变的时候 就要去后台取数据
钩子函数要添加内容
如果不用mybatis怎么写 不会
分页 调整显示条数的时候 要把页码归一,不然会发生 在第三页,调整容量后也在第三页
合并函数(这两个函数功能差不多,就参数不一样)
合并获取参数的代码
方法要用this调
为什么他不传页数也有分页
1、不知道为什么可以,我的话
数据不出来:是因为 没有判断分页为空
2、会把所有东西都查出来,但是调整分页不不好使
不要像他那么做
养成这个习惯,在方法 做输出语句 输出方法的功能描述
之前困扰的我vue json字符串 需要我手动转换对象 出错的问题
不是等号的问题
我是傻逼
去掉不需要的引用
ctrl+alt+o
来吧写菜单查询和分页
1、先把数据查出来 不考虑分页和关键字查询
先写个接口出来
草拟吗,浪费两天时间,老子今天就是猝死在这里也要他妈的完成
1、菜单查询
2、分页
3、关键字查询
菜单查询(看看我能出什么SBbug)
上级菜单是我实体类没有的属性,老师是怎么弄的啊
老师没有建立show 这个属性
我可以留着 show 然后自己加一个属性进去,记得更改返回集
通过起别名的方式 来和返回集对应
我超
print 和 wirter 的区别
java.io.Writer.write(String str,int off,int len) 方法将写入一个字符串的一部分。
flush close 都不需要
意思是只要使用了ServletResponse对象,它就自动在servlet运行完毕时自动flush和close,在servlet运行过程中进行手动flush和close不会产生任何风险,也不会有任何好处,说白了就是response.getOutputStream()你只负责往里面写,其他的不用你管
v-for 好像写在了跟标签 报错
原来它不需要我去帮他循环
如果没有 用那个returnEntity 那个数据返回值没有名字
没有配置子路由
怎么配置 根据 实体类的url 去配置地址
路由地址配错 Module not found: Error: Can’t resolve
点连接会跳转到主页
element提供了 跳转功能
是什么来着
if(!req.getParameter(“operate”).contains(“login”)) 报空指针
报空指针
前端代码
this.$axios
.get(
'/user.do?operate=login&' +
this.$qs.stringify(this.loginForm)
)
没事,就是服务器一启动就去判断了,再发 链接就没事了
前端数据绑定异常
1、各种 数据没加 :
2、二级菜单遍历的应该是 menu.submenu 而不是直接写个 menu
为什么数据有时候会循环三遍
因为没走一次 查询菜单们都会遍历 一遍菜单
我应该像老师那样,从session里面拿
子菜单的连接跳转
子菜单的这个 绑定id 是没有P用的,所以把它改成超链接
配置了 子路由 和 仍然没有用
和这个大括号有关系吗
单词写错了,草拟吗!!!!!!!!!!!!
跳转子组件的时候 子组件的请求 没有发出去
我说怎么没有发出去呢
我他吗把钩子函数 写进 data() 里面了
!!!!!!!!!!数据格式错误
前面不能加东西
数据显示不正常
添加链接描述
这里忘配置了
数据显示正常 控制台报错
他要个数组,我给的是个对象
点击摁钮即可 关闭样式
双拉条
分页数据怎么绑定 什么. 什么
qs 怎么用
this.$qs.stringify(this.pageInfo)
分页学的和屎一样
老师也是要 查询列表和总页数都要查询的,和我之前学的一样
分页不好使,因为我在后台设置 页数不能等于0
实际上因为PAGE-1*5 所以page 已经等于0了
要不要把page 三个属性都传回去 都传回去方便前端赋值
这个就根据页数查询出错 数据数量就不会有错
他说是这里报错
我草你妈,我习惯了
怎么把两个对象都传回后端
条件查询
需要参数
菜单名称
上级ID
qs拼接
vue 数值未定义 错误