我的第一篇文章,所以请放轻松我...
我目前正在BackboneJS + JAX-RS中编写医院排班网络应用程序。直到现在一直很好,但我不能为我的生活工作这个......
在我的Group
模型中,我有一个Users
集合。
这是从JAX返回List<User>
,User
上有@XmlRootElement
注释。
但是当我调用fetch时,它会使Group
模型数组填充User
模型而不是Users
集合。
有没有办法告诉JAX将User
模型列表作为Users
集合返回?
任何帮助表示赞赏!
编辑:
Backbone中的群组模型:
window.Group = Backbone.Model.extend({
urlRoot: "api/groups",
defaults: {
name: ''
},
validate: function(attrs){
var errors = [];
if (!attrs.name) {
errors.push({name: 'name', message: 'Please fill in the name field.'});
}
if(!attrs.users || attrs.users.length == 0){
errors.push({name: 'users', message: 'Please add at least 1 user.'});
}
return errors.length > 0 ? errors : false;
}
});
Java中的组模型:
package org.jakeduncandev.roster;
import java.util.List;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Group {
private int id;
private String name;
private int ownerid;
private List<User> users;
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getOwnerid() {
return ownerid;
}
public void setOwnerid(int ownerid) {
this.ownerid = ownerid;
}
}
JSON返回:
"groups":[{"name":"mates","id":71,"users":[{"id":6,"password":"<PASSWORD>","email":"<EMAIL>","firstName":"Jake","lastName":"Duncan"},{"id":7,"password":"<PASSWORD>","email":"<EMAIL>","firstName":"alec","lastName":"stearn"}],"ownerid":0}]
答案 0 :(得分:0)
解决!
我在parse
模型中添加了Group
方法。然后当我实例化我的集合时,我使用了选项{parse: true}
,然后为每个模型调用parse
方法。
感谢大家和user10的帮助,建议覆盖解析方法!
parse: function(response){
response.users = new window.Users(response.users);
return response;
}