欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

ajax+struts2解决思路

更新时间: 2014-01-05 01:54:05 责任编辑: Author_N1

 

ajax+struts2
做级联查询   
当select改变值时 使用ajax的change  调用后台的action 返回一个json格式的数据 然后把该数据取出来  显示在页面的另一个下拉框中   页面代码 如下:
	接收部门:<select name="dept" style="width:100px" id="dept">
<s:iterator id="list" var="list" value="list">
<option value="<s:property value='id'/>"><s:property value="name"/></option></s:iterator>
</select>
 &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;
接收人员:<select name="opeUserCode" id="opeUserCode">

</select> 

ajax代码如下:
 $("#dept").change(
function() {
$.ajax({
type : "post",//使用get方法访问后台
dataType : "json",//返回text格式的数据
url : "hlb_getDeptUser.action",//要访问的后台地址
data : "dept="+ $("#dept").val(),//要发送的数据
async : true,
/*complete : function(data) { },*/
success : function(data) { //msg为返回的数据,在这里做数据绑定
var userId;
var userName;
$(data,function(i) {
var sj = data[i];
userId = sj[0];
userName = sj[1];

$("#opeUserCode").append(
"<option value='"+userId+"'>"+userName+"</option>"
);
});
}
});
});

后台代码如下:
Connection conn = ConnectionManager.getDssConn();
DBManager dbManager = new DBManager(conn);
ResultSet rs = null;
String sql = "";
List list = new ArrayList();
try {

sql = "select dept_id,dept_name from env_t_department where zt=1";
rs = dbManager.sqlSelect(sql);
while(rs.next()){
DeptObject obj = new DeptObject();
obj.setId(rs.getString("dept_id"));
obj.setName(rs.getString("dept_name"));
list.add(obj);
}

} catch (SQLException e) {
e.printStackTrace();
} finally {
ConnectionManager.closeConn(conn);
}
response.setCharacterEncoding("utf-8");
try {
response.getWriter().write(JsonUtil.list2json(list));
} catch (IOException e) {
e.printStackTrace();
}

JsonUtil.list2json是已经封装的转换格式的方法.
在 success : function(data) { //msg为返回的数据,在这里做数据绑定
var userId;
var userName;
$(data,function(i) {
var sj = data[i];
userId = sj[0];
userName = sj[1];

$("#opeUserCode").append(
"<option value='"+userId+"'>"+userName+"</option>"
);
});中  有进入success,但是不能往下执行  求帮忙
--参考方法--
有报错没有,信息在哪里
--参考方法--
如果没有报错的信息,而又使用了struts的json返回,估计就是因为内部深度序列问题,不能完成序列操作,你可以使用struts的json-plugin工具类,序列对象为字符串,再response到页面,然后在页面使用eval方法把字符串转成json对象
--参考方法--
你看下你的struts的配置文件是否返回json,action是否返回json
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 01:54:05
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/2776/
本文WWW.DOC100.NET DOC100.NET版权所有。