请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

不明白为什么要用那么多vo,,难道传递到前端的值就刚好都是需要的吗?直接传pojo回去,要什么有什么不适更好

为什么要组装vo呢?感觉和原来的pojo中的字段是差不多的额,这样子服务器端做了这么多setget,压力好大啊,直接给前台返回pojo对象不就是了,他要什么属性就取什么呀。

正在回答 回答被采纳积分+3

3回答

看你笑呵呵 2017-07-13 17:03:52

你好同学~

VO的意义是封装展示层需要的数据,比如CartProductVo,只用来组装页面需要的产品和购物车信息,如果这里不用VO的话是不是只能返回一个Map然后前端来取值了呢~

这里不用纠结什么 页面需要什么,如果需要的是多张表的数据,就用VO取只需要的数据

3 回复 有任何疑惑可以回复我~
提问者 suwei666 2017-07-13 10:44:36

特别是那个shipping的那里,真的是无法理解,把东西全部get出来又set回去,就是换了个类名,前辈,拜托你能不能说说为啥啊,不知道为什么,总觉得这样好恼火,一点意义都没有

3 回复 有任何疑惑可以回复我~
  • SUDDEV #1
    一般Vo有两种情况:
    有些时候vo就是pojo的缩减版,去掉了前端用不着的信息或者不能让前端知道的信息
    还有一种情况可能我一次要返回给前端多个pojo组装起来的数据,我就可以组装一个pojo返回给前端,前端一次性就拿到所有数据了
    
    再说说CartProductVo,在getCartVoLimited()这个方法里,我门先查出购物车表中所有的Cart并存入到List中,我们的确可以将这个List<Cart>直接返回,但Cart中都有什么数据呢,
         private Integer id;
    
        private Integer userId;
    
        private Integer productId;
    
        private Integer quantity;
    
        private Integer checked;
    
        private Date createTime;
    
        private Date updateTime;
    
    可以看到关于产品信息的只有一个productId,那么前端拿到这样的信息,又得拿着productId又去请求后端,那么作为后端人员,我们得到这个productId,可以很方便的关联查数据库,查到对应的Product,但是在Product一些数据是本次前端购物车业务用不到的,所以我们就封装一个CartProductVo,就可以将Cart的属性和对应的Product组装起来,就成了前端需要的CartProductVo
    回复 有任何疑惑可以回复我~ 2017-07-14 08:31:52
  • tidhy #2
    不知道现在兄弟你弄明白没?我现在也看到那里了。。感觉好乱
    回复 有任何疑惑可以回复我~ 2017-09-10 18:30:39
乃好 2019-06-24 10:58:29

老哥,我也和你一样的想法,我看你是17年评论的这个,你现在想通了吗

0 回复 有任何疑惑可以回复我~
  • 我认为你可以把它认为是一种规范。
    回复 有任何疑惑可以回复我~ 2020-07-27 17:46:49
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信