目前我是在用EXT功能表单,需要再页面上获取后台JSON传来的数据,可能会用到AJAX的数据。但是好像在JSP中使用AJAX需要加入什么框架是吧,谁能给个解释啊???
解决方案 »
- jsp中提取文本框的value值的问题(特殊情况)
- native2ascii.exe转码问题
- 关于java写socket服务和c写的客户端的通信
- 如何在提交后显示的日期和系统日期一致?
- struts的global_error和一般的error有什么不同?
- 大哥们、大姐们、帅哥们、美女们、我想求你们帮我做一个飘满玫瑰的可镶入HTML网页代码、
- 初学者~~~~请教一个Bean的问题,,,知道请回答!
- ▲▲因看了方解我多年Code之恨,想必CSDN在坐也多如此▲必看必想必分▲
- 文件下载的问题:OutputStream is already being used for this request的错误提示?
- 怎么在JSP中把session.getAttribute("参数")赋值给一个变量。
- 求 Struts1.2 中文版的API 帮助文档 谁有给个呗
- 关于jquery树形控件的问题
就是一段JS 具体你在网上找个例子看看就行了
先别用框架 自己试试
// 基本的发送请求
Ext.Ajax.request({
url: 'foo.php',
success: someFn,
failure: otherFn,
headers: {
'my-header': 'foo'
},
params: { foo: 'bar' }
});// 简易的表单异步发送
Ext.Ajax.request({
form: 'some-form',
params: 'foo=bar'
});// 给每一个异步请求设置默认的数据报头
Ext.Ajax.defaultHeaders = {
'Powered-By': 'Ext'
};// 给每一个异步请求绑定全局的事件句柄 !Ext.Ajax.on('beforerequest', this.showSpinner, this);
然后写个js函数:
$.ajax({
type: "POST",
url: url,
data:{'id':'ids'},
success: function(d){
return;
}
});
data:传参数
url:访问路径
dataType:返回数据类型如:dataType:'json'
d:返回的数据
再说AJAX就那段代码又不难,做过1次接下来就是拷贝 粘贴了。
但引入ajax的包用起来比较方便
虽然是好心,不过我觉得这是成熟程序员的做法,初级程序员,会用就行,估计他最想看到的是能用的现成代码http://blog.csdn.net/the_fire/archive/2011/01/22/6158003.aspx
前台就不要说了,jquery的ajax应用语法+json格式数据例如:{name:"aa",pwd:"aa"} json格式数据要你去专研,否则你组织不好待提交数据,后台解析不到。后台解析jquery传递过来的json格式数据需要 java代码解析,这时,你需要下载第三方类库
json-lib-2.3-jdk15.jar在后台解析时:public ActionForward insertPlan(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
request.setCharacterEncoding("UTF-8");
List detailList = null;// 接收强制转换后jsonArray的数据
JSONObject JOProMain = null;// 接收json对象中方案对象
JSONArray JADetailList = null;// 接收json对象的定时项对象数组
UwkTmMain WktmMainItem = null;// 接收强制转换后的方案对象
String line = null;
JSONObject JOString = null;
Object objMainFromJSONString = null;
Object objListFromJSONString = null;
int result = 0;
try {
// 创建读取字符流对象BufferReader
BufferedReader br = new BufferedReader(new InputStreamReader(
(ServletInputStream) request.getInputStream()));
StringBuilder sb = new StringBuilder();
// 将字符流保存到内存中StringBuilder
while ((line = br.readLine()) != null) {
sb.append(line);
}
String JsonString = sb.toString();
System.out.println(JsonString);
JsonString = URLDecoder.decode(JsonString, "UTF-8");// 因为json无法传输中文,于是采用js变换字符编码格式java解析该格式,解码为utf-8
JOString = JSONObject.fromObject(JsonString);// 根据json字符串创建json对象
objMainFromJSONString = JOString.get("proMain");// 从json对象中分离对象,注意并不一定是自己预计的类型
objListFromJSONString = JOString.get("detailList");// object类型
if (objMainFromJSONString != null) {
JOProMain = (JSONObject) objMainFromJSONString;
WktmMainItem = (UwkTmMain) JSONObject.toBean(JOProMain,
UwkTmMain.class);
}
if (objListFromJSONString != null) {
JADetailList = (JSONArray) objListFromJSONString;
detailList = new ArrayList();
for (int i = 0; i < JADetailList.size(); i++) {
UwkTmDetail detail = new UwkTmDetail();
JSONObject jsonItem = JADetailList.getJSONObject(i);
UwkTmDetailId detailItem = (UwkTmDetailId) JSONObject
.toBean(jsonItem, UwkTmDetailId.class);
detail.setId(detailItem);
detailList.add(detail);
}
result = wktmService.addTmrMainAndDetail(WktmMainItem,
detailList);
}
} catch (JSONException e) {
e.printStackTrace();
}
if (result > 0) {
this.printText(response, "yes");
} else {
this.printText(response, "no");
}
return null;
}要用到的JSON类库:import net.sf.json.JSONArray;
import net.sf.json.JSONException;
import net.sf.json.JSONObject;
然后就是组织数据返回到客户端:public ActionForward wktmMainList(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException {
List wktmMainList = this.wktmService.findAllWkTmMainList();
String switchftmr = this.wktmService.findTmrFromSysParam();
Map m = new HashMap();
m.put("wktmMainList", wktmMainList);
m.put("switchftmr", switchftmr);
this.printJson(response, m);
return null;
}// 封装输出json
protected void printJson(HttpServletResponse response, Object m)
throws IOException {
response.setContentType("application/x-json; charset=UTF-8");
PrintWriter out = response.getWriter();
JSONObject jo = JSONObject.fromObject(m);// 转化Map对象
out.print(jo);
out.flush();
}