У меня есть Java-объект со многими другими вложенными объектами и списками объектов. Когда запрос приходит от клиента, я вижу, что объект заполняется только на несколько уровней. Есть ли какая-либо конфигурация, которая устанавливает это Struts 2? Вот мой пример.
class MyActionClass extends ActionSupport {
private Abc abc;
public Abc getAbc() {
return abc;
}
public void setAbc(Abc abc) {
this.abc = abc;
}
public String populate() {
MyService myService = new MyService();
abc = myService.getMyAbc();
return SUCCESS;
}
public String update() {
MyService myService = new MyService();
myService.updateAbc(abc);
return SUCCESS;
}
}
class Abc {
private List<Def> defList;
private Ghi ghi;
public void setDefList(List<Def> defList) {
this.defList = defList;
}
public List<Def> getDefList(){
return defList;
}
public void setGhi(Ghi ghi) {
this.ghi = ghi;
}
public Ghi getGhi() {
return ghi;
}
}
class Def {
private String name;
private long id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
}
class Ghi {
private List<Def> defList;
private String ghiName;
public void setDefList(List<Def> defList) {
this.defList = defList;
}
public List<Def> getDefList() {
return defList;
}
public void setGhiName(String ghiName) {
this.ghiName = ghiName;
}
public String getGhiName() {
return ghiName;
}
}
Когда я вызываю метод populate
и когда отправляю в jsp, итерация происходит хорошо со всеми элементами. Но когда я пытаюсь обновить, то есть когда отправляется форма, вызывается метод update()
, но переменная экземпляра abc не заполняется полностью.
Я видел переданный URL, и все, кажется, в порядке. Позвольте мне рассказать вам, что происходит. URL будет что-то вроде (разделение с переносом строки для легкого понимания здесь),
&abc.defList[0].name=alex
&abc.defList[0].id=1
&abc.defList[1].name=bobby
&abc.defList[1].id=2
&abc.ghi.ghiName=GHINAME
&abc.ghi.defList[0].name=Jack
&abc.ghi.defList[0].id=1
&abc.ghi.defList[1].name=Jill
&abc.ghi.defList[1].id=2
В этом случае defList
внутри abc
и ghi.ghiName
в abc
заполняются без проблем. Но defList
из abc.ghi
не заполнен. Это обычное поведение Struts 2? Есть ли какие-либо средства, с помощью которых это может быть отменено?