service层判断返回值是否为空,空的话返回一个=null的model,不为空的话 5C

service层判断返回值是否为空,空的话返回一个=null的model,不为空的话 给刚才的model new一下,然后把查出来的东西 ito循环遍历 赋值给model,这样做不对,我想知道为什么?

6个回答

这样做的话,从代码层面来说是可行的,只是不好

因为在service层对model操作,不规范,而且,如果返回值为null就返回null的model,那model之前属性的值,都没有了,这样显然欠妥

ma15732625261
金兴M model之前就是new出来的,具体的属性 没有赋值;谢谢您的回复
大约 3 年之前 回复

把报的错截图贴上来看看,问题表述不够清楚

ma15732625261
金兴M 因为我把那个代码改了,所以现在不报错了,问这个问题是想知道这样做报错的原因,谢谢您的回复
大约 3 年之前 回复

这只能说不好吧? 楼主说不对。。。是楼主遇到了什么具体错误吗? 不然楼主应该不会直接说不对吧?

ma15732625261
金兴M 谢谢回复,空指针
大约 3 年之前 回复
qq_33727653
砸死接触 电脑示例图里面的随便找了个
大约 3 年之前 回复
qq_36759663
qq_36759663 你的头像跟我的一样了
大约 3 年之前 回复

不管查询结果是否为空都返回一个新的List集合,controller层调用得到并给viewModel的是一个list集合,jsp页面得到集合判断是否为空再进行迭代

ma15732625261
金兴M 懂你的意思了,谢谢回复
大约 3 年之前 回复

楼主表述略显不清晰,报出什么具体的错误了?

ma15732625261
金兴M 因为我把那个代码改了,所以现在不报错了,问这个问题是想知道这样做报错的原因,谢谢您的回复
大约 3 年之前 回复
ma15732625261
金兴M 空指针,返回到单元测试类中 空指针
大约 3 年之前 回复

1.这样的话,你在controller层就要对service的返回进行非空判断,才能写返回值,如果你不判断,人家前端拿你数据也不判断就会空指针异常;
2.controller层尽量要简单,不要写多余的判断,所以你service层轻易不要返回null;空的话 你new一个model,不空你直接返回结果集;
3.至于您说的不空的话 new个对象循环set也欠妥,如果用的mybatis,你完全可以DAO层返回值就是那个model,没必要循环set了,然后判断model如果为空;就new一个新的对象返回;这样人家别人拿你数据起码key值都存在;
4.当然最好mybaits的model和controller的model不要是一个;最好不要一个底层model 直接返回前端

以上 个人拙建,仅供参考;

zhenglichenboy
zhenglichenboy 回复Phoebe星丫头: csdn修复了,今天能回帖了,,,哈哈
大约 3 年之前 回复
zhenglichenboy
zhenglichenboy 回复Phoebe星丫头: 金币无所谓了,就是互相交流一下。没事
大约 3 年之前 回复
ma15732625261
金兴M 怎么把金币给您,这个真心不会?
大约 3 年之前 回复
ma15732625261
金兴M 专门发私信给我回复,特别感谢您
大约 3 年之前 回复
ma15732625261
金兴M 有判空但是 空指针的错还是报了,您说 不要一个底层model直接返回前端是什么意思? 不要一个model?
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
    立即提问
    相关内容推荐