Ext的form向后台传大量值的问题(可编辑表格)

我在使用form的时候,有些值是直接加载URL后面向后台(struts2)传递的,如下:
Ext.getCmp('tabs').getForm().getEl().dom.action ='updatebenchmarkarith.action?'+string;
Ext.getCmp('tabs').getForm().getEl().dom.method = 'POST';
Ext.getCmp('tabs').getForm().getEl().dom.submit();

当后面的string为:
definition.algdescribe=eeqrewrqwer66666&definition.benchmarkarithcode=10003&definition.arithtype=1&definition.comptype=1&spdefinitionList%5B0%5D.benchmarkarithcode=10003&spdefinitionList%5B0%5D.indexcode=1018&spdefinitionList%5B0%5D.indexexchange=SHIBE&spdefinitionList%5B0%5D.weight=0.0&spdefinitionList%5B1%5D.benchmarkarithcode=10003&spdefinitionList%5B1%5D.indexcode=6023&spdefinitionList%5B1%5D.indexexchange=E&spdefinitionList%5B1%5D.weight=5的时候是可以正常提交的,但是当数据较多时提交后就没有反应了,也不报错

google了一下,method ='get'的时候,传递的数据是有限,post则不受限,但是当以上面的方式将method 设置为post时,还是一样的,不知为何????

关于该问题的解决我有这样的要求:
第一,后台接受数据直接是List<model>,主要对于可编辑表格,基本上,表格每条数据对应后台List中的一个对象实例;
第二,最好不要用什么隐藏域提交,然后到后台去解析,我希望后台除了定义一个List就OK了,所有的一切都在前台做完了;

实际上,我上面的做法就是为了达到这个目的,但是随着可编辑表格的数据量的增大,就不行了,以前有人回复了一些方案,其实我试过了不行,是不是我的这种想法真的不能实现?


-------------------------------------------------2009-7-2
对于这个问题,貌似是这样的,对于URL的长度就是受到限制了,提交方法是‘get’还是‘post’对此好像无能为力(需要查文档证实)。
最近我想到到了一个自己可以接受的解决办法:

一、后台依然用数据对象或对象数组直接接受数据,无需任何修改;
二、前台的提交方式修改:
对于原先加在URL后面的字符串换成动态添加的隐藏域:如我想将表格第i条数据的‘name’字段,直接存储到后台申明的List<T> list的第i个对象的‘name字段’,那么我应该这样做:
var t = new Ext.form.TextField({name:'list['+i+']',value:'testvalue',hidden:true,hideLabel:true});
如我定义了一个保存按钮id为‘save’,则我可以这样动态的添加t到form中,
Ext.getCmp("savebtn").ownerCt.add(t);
注意:这一步很重要:Ext.getCmp('form').doLayout(true);
Ext.getCmp('form')为为定义的formpanel,doLayout(true)有什么作用,参见API;
这样就将grid.store中的一个record的一个字段对应到了action中list的一个对象的一个字段,意味着前后台的直接对应;
我认为,这很方便,简化了数据处理,后台只需做一些dao层的事情即可,而无须考虑前台显示的数据格式。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值