Я использую jQuery 1.4.2, Struts 2.3.34 и плагин Struts JSON 2.3.34.
Публикуя значения с веб-страницы в Action, вначале все хорошо.Но если я добавлю к массиву подмассив / список, то после размещения подмассив / список станет null
.
См. Определение бина и отображение действий в struts.xml
ниже.
BasicBean
public class BasicBean implements Serializable {
private String partNumber;
private List<SubBean> subBeanList;
public List<SubBean> getSubBeanList() {
return subBeanList;
}
public void setSubBeanList(List<SubBean> subBeanList) {
this.subBeanList = subBeanList;
}
public String getPartNumber() {
return partNumber;
}
public void setPartNumber(String partNumber) {
this.partNumber = partNumber;
}
}
SubBean.java
public class SubBean implements Serializable {
private String maxCritical;
private String minCritical;
public String getMaxCritical() {
return maxCritical;
}
public void setMaxCritical(String maxCritical) {
this.maxCritical = maxCritical;
}
public String getMinCritical() {
return minCritical;
}
public void setMinCritical(String minCritical) {
this.minCritical = minCritical;
}
}
struts.xml
<action name="jsTest" method="doJSon" class="com.jst.action.JSTest">
<result name="error" type="json">
<param name="includeProperties">errorResult.*</param>
</result>
<result name="success" type="json">
<param name="root">result</param>
</result>
</action>
JavaScript JQuery Ajax
var sbList = [];
localData = {
'"maxCritical"' : '8',
'"minCritical"' : '9'
}
sbList.push(localData);
finalData = {
'bb.partNumber':'6',
'bb.subBeanList' : sbList
}
$.ajax({
type: "post",
url: updateUrl,
data: finalData,
cache: false,
dataType: 'json',
success: function(msg){
if (msg.errorResult) {
if(msg.errorResult["error_code"] == "session_expired"){
sessionExpired();
}
return;
}
jAlert("OK");
}
});
В соответствии с окном отладки значения подчиненного компонента были отправлены на сервер:

Но на стороне сервера null
, но другой элемент Partnumber был успешно отправлен:
