如何绑定对象属性并通过Ajax发送数据?

时间:2018-07-23 02:34:34

标签: javascript jquery ajax spring-framework-beans

我正在努力发送包含对象作为成员属性的数据。

这是域类。

public class Timeline extends Post{
    String picture;
    User user;
    int like;
    ...
    (getters and setters)
}

我已经用此代码获取了JSON数据,因此可以从'obj'变量获取数据。

var obj;
$.ajax({
method: "GET",
dataType: "json",
url: serverRoot + "/json/auth/loginUser",
async: false
  })
  .done(function(data) {
    obj = data;
 });

返回的数据如下所示。

 "user" : {
         "userNo" : 1,
         "name" : "user01",
             ...
      }

下一个JSON数据是我想发送到服务器的数据。

{
  "no" : 23,
  "content" : "hihi",
  "createdData" : "2018-07-22",
  "picture" : null,
  "user" : {
     "userNo" : 1,
     "name" : "user01",
         ... **obj JSON data I got above**
  }
}

这是要发送到服务器的代码。 (这是我被困住的东西)

$("#sh-tl-post-btn").click(() => {
  $.ajax({
     type: 'POST',
     url: '../../../json/timeline/add',
    data: {
      picture: $('#sh_tl_upload').val(),
      content: $('#sh_tl_post_write').val(),
      **user: [{"userNo":obj.userNo}]**
    },
  }).done(function() {
    console.log("inserted.");
    location.href = "timeline.html"
   });
});

Mapper文件如下所示。

<insert id="insert" parameterType="Timeline">
    <choose>
        <when test="picture != ''">
            insert into TML(tmlno, uno, tmlpath)
            values(#{no}, #{userNo}, #{picture})
        </when>
        <otherwise>
            insert into TML(tmlno, uno)
            values(#{no}, #{userNo})
        </otherwise>
    </choose>
</insert>

我一直在寻找在这里写些什么,而不是    用户:[{“ userNo”:obj.userNo}] ,此...

我一直在尝试

user : {"userNo" : obj.userNo}
user.userNo : obj.userNo
user.[0].userNo : obj.userNo
...

但是控制台一直在说

    [Request processing failed; nested exception is 
     org.springframework.beans.InvalidPropertyException:.....

这种错误。

有没有人可以帮助我如何通过Ajax绑定嵌套对象的属性  JSON数据?预先感谢。

0 个答案:

没有答案