Я хочу отправить запрос Ajax POST к моему действию Struts с помощью jQuery следующим образом:
$.ajax({
type: "POST",
url: "ds/query",
data :JSON.stringify(data),
dataType:"json",
contentType: "application/json; charset=utf-8",
success : function(d, t, x){
console.log(x);
}
});
моя конфигурация действий:
true
true
true
qRes
мой класс действий:
public class DataServiceAction {
private QueryRequest qReq;
private QueryResponse qRes;
public QueryRequest getQr() {
return qReq;
}
public void setQr(QueryRequest qReq) {
this.qReq = qReq;
}
public QueryResponse getqRes() {
return qRes;
}
public void setqRes(QueryResponse qRes) {
this.qRes = qRes;
}
public String query() throws Exception{
App.getLogger().debug(qReq.toString());
String dsClz = SysCodes.getCodeItem("data_service", qReq.getDs()).getConfig1();
Class dsCls = Class.forName(dsClz);
if(!DataService.class.isAssignableFrom(dsCls)){
throw new Exception("specified class does't implement DataService interface.");
}else{
DataService ds = (DataService) dsCls.newInstance();
System.out.println(JsonUtil.toJson(ds.query(qReq)));
qRes = ds.query(qReq);
}
return ActionSupport.SUCCESS;
}
}
QueryRequest и QueryResponse — это просто Java-бины, когда я выполняю свой код, сервер может читать данные JSON и выполнять свою работу без ошибок, и я уверен, что объект QueryResponse заполнен данными . но я ничего не могу получить на стороне клиента, оба параметра responseText и responseJson имеют значение null.
Почему не сделал struts2 -json-plugin автоматически преобразовать мой объект QueryResponse в строку JSON?
Мой класс QueryResponse:
public class QueryResponse {
private int total;
private List data;
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public List getData() {
return data;
}
public void setData(List data) {
this.data = data;
}
}
Фактический тип данных, содержащихся в списке, должен быть определен во время выполнения, например, если данные содержат список объектов Role:
пакет gov.cbrc.gzbanking.domain;
public class Role {
private String id;
private String name;
private String remark;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
тогда ожидаемый результат будет таким:
{
total : "1", data :[{"id":"admin", "name":"admin role"}]
}
Подробнее здесь: https://stackoverflow.com/questions/296 ... s-2-action
Почему я не могу получить JSON из действия Struts 2? ⇐ Jquery
Программирование на jquery
-
Anonymous
1730315501
Anonymous
Я хочу отправить запрос Ajax POST к моему действию Struts с помощью jQuery следующим образом:
$.ajax({
type: "POST",
url: "ds/query",
data :JSON.stringify(data),
dataType:"json",
contentType: "application/json; charset=utf-8",
success : function(d, t, x){
console.log(x);
}
});
моя конфигурация действий:
true
true
true
qRes
мой класс действий:
public class DataServiceAction {
private QueryRequest qReq;
private QueryResponse qRes;
public QueryRequest getQr() {
return qReq;
}
public void setQr(QueryRequest qReq) {
this.qReq = qReq;
}
public QueryResponse getqRes() {
return qRes;
}
public void setqRes(QueryResponse qRes) {
this.qRes = qRes;
}
public String query() throws Exception{
App.getLogger().debug(qReq.toString());
String dsClz = SysCodes.getCodeItem("data_service", qReq.getDs()).getConfig1();
Class dsCls = Class.forName(dsClz);
if(!DataService.class.isAssignableFrom(dsCls)){
throw new Exception("specified class does't implement DataService interface.");
}else{
DataService ds = (DataService) dsCls.newInstance();
System.out.println(JsonUtil.toJson(ds.query(qReq)));
qRes = ds.query(qReq);
}
return ActionSupport.SUCCESS;
}
}
QueryRequest и QueryResponse — это просто Java-бины, когда я выполняю свой код, сервер может читать данные JSON и выполнять свою работу без ошибок, [b]и я уверен, что объект QueryResponse заполнен данными .[/b] но я ничего не могу получить на стороне клиента, оба параметра responseText и responseJson имеют значение null.
Почему не сделал struts2 -json-plugin автоматически преобразовать мой объект QueryResponse в строку JSON?
Мой класс QueryResponse:
public class QueryResponse {
private int total;
private List data;
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public List getData() {
return data;
}
public void setData(List data) {
this.data = data;
}
}
Фактический тип данных, содержащихся в списке, должен быть определен во время выполнения, например, если данные содержат список объектов Role:
пакет gov.cbrc.gzbanking.domain;
public class Role {
private String id;
private String name;
private String remark;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
тогда ожидаемый результат будет таким:
{
total : "1", data :[{"id":"admin", "name":"admin role"}]
}
Подробнее здесь: [url]https://stackoverflow.com/questions/29600870/why-cant-i-get-json-from-struts-2-action[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия