对json传输的进一步优化

来源:互联网 发布:淘宝网衣服女装 编辑:程序博客网 时间:2024/06/03 20:36

思考一番后,觉得还是把下面的内容发出来,逻辑更严谨,包括servlet和action

servlet:

public void getUserJson(){try {//1、获取部门String dept = ServletActionContext.getRequest().getParameter("dept");if(StringUtils.isNotBlank(dept)){QueryHelper queryHelper = new QueryHelper(User.class, "u");queryHelper.addCondition("u.dept like ?", "%" + dept);//2、根据部门查询用户列表List<User> userList = userService.findObjects(queryHelper);//创建Json对象JSONObject jso = new JSONObject();jso.put("msg", "success");jso.accumulate("userList", userList);//3、输出用户列表以json格式字符串形式输出HttpServletResponse response = ServletActionContext.getResponse();response.setContentType("text/html");ServletOutputStream outputStream = response.getOutputStream();outputStream.write(jso.toString().getBytes("utf-8"));outputStream.close();}} catch (Exception e) {e.printStackTrace();}}
action:

public String getUserJson2(){try {//1、获取部门String dept = ServletActionContext.getRequest().getParameter("dept");if(StringUtils.isNotBlank(dept)){QueryHelper queryHelper = new QueryHelper(User.class, "u");queryHelper.addCondition("u.dept like ?", "%" +dept);//2、根据部门查询用户列表return_map = new HashMap<String, Object>();return_map.put("msg", "success");return_map.put("userList", userService.findObjects(queryHelper));}} catch (Exception e) {e.printStackTrace();}return SUCCESS;}public Map<String, Object> getReturn_map() {return return_map;}public void setReturn_map(Map<String, Object> return_map) {this.return_map = return_map;}
配置:
<package name="sysHomeJson-action" namespace="/sys" extends="json-default"><span style="white-space:pre"></span><action name="home_getUserJson2" class="cn.itcast.home.action.HomeAction" method="getUserJson2"><span style="white-space:pre"></span><result type="json"><span style="white-space:pre"></span><param name="root">return_map</param><span style="white-space:pre"></span></result><span style="white-space:pre"></span></action><span style="white-space:pre"></span></package>
ajax部部分优化:

$.ajax({    url:"${basePath}sys/home_getUserJson2.action",    data:{"dept":dept},    type:"post",    dataType:"json",//返回数据类型    success: function(data){    //2.1、将用户列表设置到被投诉人下拉框中    if(data != null && data != "" && data != undefined){    if("success" == data.msg){    var toCompName = $("#toCompName");    toCompName.empty();    $.each(data.userList, function(index, user){    toCompName.append("<option value='" + user.name + "'>" + user.name + "</option>");    });    } else {alert("获取被投诉人列表失败!");}    } else {    alert("获取被投诉人列表失败!");    }    },    error:function(){alert("获取被投诉人列表失败!");}    });




0 0