Как связать JSON с Java-объектом в Struts2, используя struts2-json-plugin
Я хочу десериализовать (связать) JSON для Java-объекта. Как это сделать в Struts2?
Я пытаюсь сделать это с помощью struts2-json-plugin, как вы можете видеть в приведенном ниже коде, но отправленный JSON из внешнего интерфейса не привязан к моему объекту java. Не могли бы вы помочь мне, пожалуйста, как заставить этот код работать правильно?
Пожалуйста, взгляните на мой класс действий, я не уверен, если яЯ правильно обрабатываю JSON в этом действии, или, может быть, я что-то пропустил?
JSON, который я пытаюсь связать:
{"data":[
{"active":true,"color":"orange","date":"2008-01-01","id":1,"name":"Chris"},
{"active":false,"color":"blue","date":"2013-03-03","id":2,"name":"Kate"},
{"active":true,"color":"black","date":"2013-05-03","id":3,"name":"Blade"},
{"active":false,"color":"yellow","date":"2013-01-01","id":4,"name":"Zack"}]
}
Отправка JSON от Ajax:
$.ajax({
url: "../json/saveJSONDataAction.action",
data: {"data": handsontable.getData()}, //returns all cells' data
dataType: 'json',
type: 'POST',
success: function (res) {
if (res.result === 'ok') {
$console.text('Data saved');
}
}
});
Получение JSON в Struts2:
Я могу добраться до метода execute () в отладке, но, к сожалению,data
поле всегда равно нулю Что я должен сделать, чтобы заполнить это поле данными из JSON? JSON в правильном формате для привязки?List data
@ParentPackage("json-default")
@Action(value="saveJSONDataAction")
@Result(type="json")
public class JSONSaveAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private List data;
public JSONSaveAction(){
}
public String execute() {
try {
System.out.println(data);
} catch (Exception e) {
e.printStackTrace();
}
return NONE;
}
public List getData() {
return data;
}
public void setData(List data) {
this.data = data;
}
}
Класс отчета:
public class Report {
private int id;
private String name;
private boolean active;
private String date;
private String color;
//getters and setters
}
struts.xml:
Как вы можете видеть здесь, ямы добавили с
true
, Весь конфиг ниже:
10485760
dojo\..*
true
save,search
save,search
save
exception
/
/applicationAccessDeniedPage.jsp
/applicationAccessDeniedPage.jsp
/unavailableResource.jsp
/pessimisticLock.jsp
/crud/index.action
/dictionaries/index.action
attachment; filename="${resultFileName}"
workbook
Что я делаю неправильно? Можете ли вы предложить мне несколько хороших примеров / руководств по выполнению десериализации из JSON в Java в Struts2, потому что я не могу найти ни одного правильного полного примера с десериализацией JSON в Struts2, особенно пример кода Action, который получит JSON и свяжет его с Java ,
Я вообще новичок в Struts, так чтоВот почему у меня проблемы с пониманием некоторых проблем и последовательности действий, например, как получить и обработать JSON в действии. Есть примеры для сериализации с помощью struts2-json-plugin, но с этой темой у меня не было проблем. Пожалуйста, помогите мне...