收藏
回答

springMvc 接收实体时 对象属性无法接收到值

问题模块
API和组件


后台user实体 能接到 name 却接不到 office的name (office是user的属性)

最后一次编辑于  2017-12-06  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

7 个回答

  • 云淡风轻
    云淡风轻
    2017-12-06

    application/json?

    2017-12-06
    赞同
    回复
  • 小虎🐯
    小虎🐯
    2017-12-06

    不是

    'content-type': 'application/x-www-form-urlencoded'

    user 实体

    private Office office;  // 归属部门
    private String name;    // 姓名

    姓名能接到

    office里的name接不到


    2017-12-06
    赞同
    回复
  • 云淡风轻
    云淡风轻
    2017-12-06

    这个不是后台框架的问题,urlencode编码后如果里面是简单类型或数组没问题,如果是对象一律是[object Object]


    2017-12-06
    赞同
    回复
  • 小虎🐯
    小虎🐯
    2017-12-06

    意思是对象属性 没法接收了吗

    2017-12-06
    赞同
    回复
  • 云淡风轻
    云淡风轻
    2017-12-06

    办法总是有的,在网页环境中

    application/json

    是可以解决你的所有问题的,ajax 默认就是json的格式来传输内容!但小程序虽然也有这种类型,但不是他们的成心还是无意的,php的后台死活拿不到值 !


    所以折中的办法就是,content-type依然设置为

    application/x-www-form-urlencoded


    但是在请求之把数据序列化为json字符串,这样后台就能拿到,然后拿到后在反序列化为对象实体就可以了,缺点也是很明显,序列化后的初始条件串容易过长,超出限制


    我说的是php,你视不同情况灵活应变吧


    2017-12-06
    赞同
    回复
  • 小虎🐯
    小虎🐯
    2017-12-06

    回答这么多 谢谢了 我大致明白了

    2017-12-06
    赞同
    回复
  • 云淡风轻
    云淡风轻
    2017-12-06

    他妈的输入法又坑我!

    2017-12-06
    赞同
    回复