对json传输的进一步优化

思考一番后,觉得还是把下面的内容发出来,逻辑更严谨,包括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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值