第一步:引入struts整合json的插件包
第二步:在struts.xml中定义:
修改:
修改成
在Action中添加:
第三步:页面使用jquery的ajax调用二级联动的js
//ajax的二级联动,使用选择的所属单位,查询该所属单位下对应的单位名称列表
function findJctUnit(o){
//货物所属单位的文本内容
var jct = $(o).find("option:selected").text();
$.post("elecUserAction_findJctUnit.do",{"jctID":jct},function(data,textStatus){
//先删除单位名称的下拉菜单,但是请选择要留下
$("#jctUnitID option").remove();
if(data!=null && data.length>0){
for(var i=0;i
var ddlCode = data[i].ddlCode;
var ddlName = data[i].ddlName;
//添加到单位名称的下拉菜单中
var $option = $("");
$option.attr("value",ddlCode);
$option.text(ddlName);
$("#jctUnitID").append($option);
}
}
});
}
第四步:在Action中定义,这里要将返回的List集合放置到栈顶,struts2将其转换成json数据:例如:
public String findJctUnit(){
//1:传递所属单位对应的名称,以名称作为条件,查询数据字典,返回List
String jctID = elecUser.getJctID();
List list = elecSystemDDLService.findSystemDDLListByKeyword(jctID);
//2:将List转化成json数据,并返回到页面上
//将list压入到struts2值栈的栈顶,struts2的插件包,将结果转换成json数据
ValueStackUtils.setValueStack(list);
return "findJctUnit";
}
上面的操作,将栈顶中封装的List集合,其中List集合中的对象所有的属性全部被json化。
总结:将List中存放的对象中的所有属性全部被json化,如果想针对某个属性被json化
此时可以修改struts.xml文件:
添加:
\[\d+\]\.ddlCode,\[\d+\]\.ddlName