前后台交互的传参方式与大参数传递
来源:互联网 发布:宝宝拍照换装的软件 编辑:程序博客网 时间:2024/05/16 07:58
转自:http://dingherry.iteye.com/blog/1514643
前台向后台传参,一般有如下几种方式:
1)URL方式传参这种方式传参时,首个参数置于url的后面,用“?”连接;形式:url?param=value
如:http://zhidao.baidu.com/q?word=%D6%BD%B1%D2+%CB%BA%BB%D9
多个参数时,参数间用“&”连接,
例如:http://zhidao.baidu.com/q?word=%D6%BD%B1%D2+%CB%BA%BB%D9&lm=0&fr=search&ct=17&pn=0&tn=ikaslist&rn=10
URL传参很方便,但是在应用时,有2个缺陷:
1)单个参数的value不能超过1920000个字节。本文这里暂时定义为大参数。
2)传递bean时很麻烦。
有种劣质方法可以办到,就是将bean的属性均需作为一个参数连接到url里传递。
比如要传递一个人这个类(有身高和性别)到后台,
前台:var pepole = {age:22,sex:'male'}
要是直接把pepole拼接到url里:url?pepole=pepole,后台在不设置struts参数解析拦截器时,以string接收将会是一个object Object。
假如后台action里声明的是这个bean类型属性,可以实现的方式是:url?pepole.age=22&pepole.sex=male
要注意的是:URL里点后面的age和sex最好跟pepole的age和sex大小写相同!
这样后台就直接接收到了一个bean。
想想看,如果bean属性很多,这让前台的兄弟情何以堪?
所以,这种方法适合bean属性少的情况,且不追求优雅的代码规范下写写。
2)jQery或Ajax方式传递
先说Ajax方式,这种方式手册上用法多的是,这里只讲讲大字串参数时,例如
Ext.Ajax.request( {
url : path+'/abc/abcAction!pramaTest.action',
success: function(response) {//这里要处理pramaTest的返回service
},
failure: function(response) {
},
params: {
data : this.veryLongJsonStr,
data2 : Ext.encode(this.veryLongJsonStr)
}
});
this.veryLongJsonStr是个长度超过1920000字节的JSON字符串。
可有清楚一点是:Ajax可有传递大数值参数
再说jQery方式,比如API上的一个例子:
$.post(url,
{ name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
}
);
jquery方式也是可以处理传递大数值参数的。
3)form的post方式
var frm = document.getElementById("xxform");
frm.action=path+'/abc/abcAction!pramaTest.action';
frm.submit();
xxform里预置一个hidden的标签,在submit之前可以把veryLongJsonStr赋值给这个隐藏的控件。这样,form的post方式也是可以传递大参数的。不过,可能会存在安全问题。
一般,我们处理这样的前后台交互,还是使用Ajax、jquery这样的成熟的框架来做这些细微的事情,比较妥当。
0 0
- 前后台交互的传参方式与大参数传递
- 前后台交互的传参方式与大参数传递
- web前后台的参数交互方式
- 前后台交互之传参方式
- SpringMVC的各种前后台参数绑定传参方式
- 前后台交互方式
- 前后台传递参数
- web 前后台数据交互的方式
- web 前后台数据交互的方式
- web前后台数据交互的方式
- json 与DATATABLE 前后台的交互
- struts 前后台参数交互
- web前后台数据交互的几种方式
- web前后台数据交互的几种方式
- web前后台数据交互的几种方式
- web前后台数据交互的4种方式
- 隐藏变量的使用-前后台参数的传递控制。
- Action跳转时,前后台参数传递的方法
- UIButton 设置圆角 边框颜色 点击回调方法
- W5500的最新驱动库
- js中对邮箱校验的总结
- Triangle
- android xutils框架的使用
- 前后台交互的传参方式与大参数传递
- 动态绑定
- shell编程
- Office 2013中OneNote的使用
- 电脑连接电视的方法——HDMI篇(图文详解)
- VirtualBox使用遇到的问题
- spring applicationContext.xml 文件中<context:component-scan/>使用详解
- FFMPEG类库打开流媒体的方法(需要传参数的时候)
- quartz 与Spring的整合-Quartz中的job如何自动注入spring容器托管的对象