逻辑上的问题
来源:3-8 实现二级联动菜单-2
kevin唯心
2019-11-02 22:27:04
老师,为什么要在第二个ajax中还要加level =2 的参数,我试过把后台的else if(level.equals("2")) {} 这个判断删掉,单独判断parent 这个参数里面的值是ai还是web 为什么会出现500的错误呢?我查看到会出空指针异常,为什么第一个下拉框只传递给servlet一个level第二个parent也是空的啊,为什么第一个下拉框传值获取的时候不报空指针而第二次的会报。都留下了一个参数没传值一个报空指针一个不报的区别在哪里。我也想不懂为什么会要在加一个level 是否等于2的判断。
1回答
同学你好,1、level就是表示是第几级菜单,level的值为1时,表示的是一级菜单,level的值为2时,表示这是一个二级菜单。
只有确定是哪一级别的菜单才能继续进入下面的内容判断,就好像在学校中我们需要定位一个学生,我们需要先说这个学生是哪个学院、哪个系的、哪个班的来定位,而如果我们直接说这个学生叫钱小芳,那是无法准确找到呐,因为可能有好几个叫钱小芳的呐。
2、单独判断parent 这个参数里面的值是ai还是web 为什么会出现500的错误呢
这里一级菜单在页面中直接加载,所以在对应在servlet中,会只接收一个level的值,而没有parent的值,所以如果去掉level.equals("2")的判断,会出现parent为null,但是直接执行了if(parent.equals("ai"))的情况,造成程序错误。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!