最近尝试做出一个部门和人员的下拉框联动功能,部门和人员的对应关系是1:N
[html]
'>
'>
部門下拉框的onchange()事件走一個AJAX方法,回傳一個JSON物件(JSON裡放的是個LIST)。
js方法在此頁的寫法:
[javascript]
function change(){ ;
var params = {
$.ajax({
type: 'get',
url: "departmentChange ,
data: params,
dataType: 'json',
2 = $("#workorderOperator");
sel2.empty();
if(data ==null)
{
sel2.append("");
}; } else { } }, error: function(){ }); //$.post(url, params, callback); } [javascript]}
[javascript]
此處回傳的data裡包含list(list見後文),list裡包含著人員的程式碼,人員的姓名兩個屬性。然後先把人員下拉框empty(),透過select控件append方法 新增新的下拉框元素。
後台程式碼:
[java]
public String departmentChangeEvent() throws Exception{
p. if(userList!=null&&userList.size()> 0)
{
HttpServletResponse response = ServletActionContext.getResponse(); text/html;charset=utf-8");
response.setHeader("Pragma","No-cache" );
response.setHeader("Cache-Control","no-cache");
PrintWriter writer = response.getWriter() ;
JSONObject json = new JSONObject();
Map list",userList);
JSONObject jso = JSONObject.fromObject(map);
);
write(jso.toString());
writer.flush();
writer.close
收到www.2cto.com
接著用標準寫法把userList放到一個定義好的HashMap中,KEY為list。
[java]
JSONObject jso = JSONObject.fromObject(map);
這是最為關鍵的一步,有的json物件建立方法也可以為JSONObject jso = new JSONObject() ;然後把list裡的記錄放入jso。 。 。
在這裡是行不通的,前台會認為回傳的是字串。 。 。
struts中回傳型別為json
[html]