Tôi có đoạn mã sau và tôi sẽ đạt được chức năng/getJson sẽ trả về đối tượng người dùng là json và/getJson2 sẽ trả về user2 làm đối tượng Json.Vấn đề với plugin Json trong Struts 2
@ParentPackage("json-default")
public class JsonAction extends ActionSupport{
private User user = new User("John","Smith");
private User user2 = new User("Smith","John");
public String populate(){
return "populate";
}
@Action(value="/getJson", results = {
@Result(name="success", type="json")})
public String test(){
return "success";
}
@Action(value="/getJson2", results = {
@Result(name="success", type="json")})
public String test2(){
return "success";
}
@JSON(name="user")
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
@JSON(name="user2")
public User getUser2() {
return user2;
}
public void setUser2(User user2) {
this.user2 = user2;
}
}
Hiện nay không có vấn đề phương pháp Tôi đang gọi tôi vẫn nhận được kết quả sau:
{"user":{"firstName":"John","lastName":"Smith"},"user2":{"firstName":"Smith","lastName":"John"}}
Có thể?
Cập nhật:
tôi sửa đổi mã:
public class JsonAction extends ActionSupport{
private User user = new User("John","Smith");
private User user2 = new User("Smith","John");
public String populate(){
return "populate";
}
@Action(value="/getJson", results = {
@Result(name="success", type="json",params = {
"includeProperties",
"user"})})
public String test(){
return "success";
}
@Action(value="/getJson2", results = {
@Result(name="success", type="json",params = {
"includeProperties",
"user2"})})
public String test2(){
return "success";
}
@JSON(name="user")
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
@JSON(name="user2")
public User getUser2() {
return user2;
}
public void setUser2(User user2) {
this.user2 = user2;
}
}
Bây giờ tôi nhận được
{"user":{}}
và
{"user2":{}}
Tôi không thể thấy sự cố.Lúc này tôi sẽ loại bỏ các setters (Tôi không biết nếu bạn có bất kỳ phép thuật mùa xuân nào có thể gây ra sự kỳ quặc), di chuyển User tạo thành một phương thức chuẩn bị và xác minh rằng người dùng không rỗng (xem http: // struts. apache.org/2.0.14/docs/prepare-interceptor.html) và đây chỉ là sở thích cá nhân nhưng @JSON (name = "user") khi áp dụng cho getUser là thừa nên tôi sẽ loại bỏ các chú thích @JSON trên getters. – Quaternion