最近尝试打造一个部门和人员下拉框联动功能,部门与员工之间的关系是1:N

复制代码代码如下所示:
部门


请选择

>



人员




>





onchange()部门的下拉框事件以Ajax方法返回一个JSON对象(JSON是一个列表)。

JS写在这页上的方法:

复制代码代码如下所示:

函数更改(){
无功departmentcode = $(#部)(。Val);

var参数= { {
departmentcode:departmentcode
};
$ ajax({
类型:' ',
网址:departmentchangeevent。shtml
缓存:false,
数据:参数,
DataType:'json,
成功:函数(数据){
VaR SEL2 =美元(# workorderoperator );
sel2.empty();
如果(数据= NULL)
{
sel2.append(+部门人员是空的+);
}
可变项目= data.list;
如果(项目)!= null)
{
对于(var i = 0;i < items.length;i++)
{
var项目=项目{ };
sel2.append(+项目。userchinesename + );
};
}
其他的
{
sel2.empty();
}
},
错误:函数(){
返回;
}
});
/ /美元。后(URL参数,回调);
}




返回的数据包含列表(下面的列表),列表包含代码,两个属性的名称。然后,工作人员下拉框空()首先通过选择控件追加方法添加到新的下拉框元素中。

背景代码:

复制代码代码如下所示:
公共字符串departmentchangeevent抛出异常(){
用户列表= service.queryforlist(工单。queryuserbydepartmentcode
如果(用户列表!= nulluserlist.size()> 0)
{
ServletActionContext.getResponse()httpservletresponse反应=;
response.setcontenttype(文本/ HTML;字符集= UTF-8);
response.setheader(语用
response.setheader(缓存控制
response.setheader(缓存控制
response.getwriter PrintWriter作家=();
JSONObject JSON =新的JSONObject();
地图地图=新HashMap();
Map.put(一览表
因此,jsonobject.fromobject JSONObject =(图);
writer.write(jso.tostring());
Writer.flush();
Writer.close();}
返回null;
}


这个方法是一个部门交换事件,这是放置在用户列表的当前部门用户通过departmentcode(场域,集,得到)。

然后放入HashMap的定义标准编写用户列表,列表和关键是。

复制代码代码如下所示:
因此,jsonobject.fromobject JSONObject =(图);


这是最关键的一步。一些JSON对象创建的方法也可以JSONObject因此=新的JSONObject();然后记录记录表分成因此。

它不在这里工作,前台会认为返回是一个字符串。

Struts中的返回类型是JSON。

复制代码代码如下所示: