EXT学习笔记07AJAX提交JSON数据又一次的思考

刚才写的EXT传JSON数据的方法发现一个更好的替代方法。EXT.Ajax.request里的还有一个参数jsondata他是专门用于发送JSON数据的可是我一直不知道如何在ACTION中获得JSON。刚才看了一一下IBM developerWorks 中国 的一篇文章顿时茅塞顿开。

方法如下

EXT代码

	Ext.Ajax.on("requestcomplete",function(_conn,_response,_options){
								
								if(_response.responseText == "ok")
								{
									Ext.MessageBox.alert("系统提示","添加成功");	
								}
						})
						Ext.Ajax.request({
							url:"addUser.do",
							jsonData:{username:_name.getValue(),password:_password.getValue()}
							
							
						});

 和刚才的一样就是把pamer属性换成了jsonData

 关键是JAVA的变化

 

//这是专门从requeset中获得JSON数据的方法。
public String requesetjson(HttpServletRequest request) {
		StringBuffer jb = new StringBuffer();
		String line = null;
		try {
			BufferedReader reader = request.getReader();
			while ((line = reader.readLine()) != null)
				jb.append(line);
		} catch (Exception e) {

		}
		return jb.toString();
	}

	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
               //把获得JSON数据的string放到org.json中的类库中一切Ok。
		JSONObject jsonObject = new JSONObject(requesetjson(request));
		Userinfo userinfo = new Userinfo((String) jsonObject.get("username"),
				(String) jsonObject.get("password"));
		userinfoDAO.save(userinfo);
		response.getWriter().write("ok");
		return null;
	}

    我一直以为可以用getpam之类的方法可以实现,晕。还是懂得太少呀。

 

 

你可能感兴趣的:(json,Ajax,ext,IBM)