薛伟 发表于 2011-9-19 10:17:04

view向controller传递大量数据

问题:view想controller传递大量数据,当controller接受到数据时,将页面跳转到另一页去
我的方法:在view中,当单击按钮时,向控制器中传递大量数据(不是从表单中获取的),原来以为可以用在控制器的相应方法中用一个数组作为形参,但好像不行;没办法,采用ajax进行传递,但在controller中接收到数据后用redirect方法跳转,好像还不行,原因可能是ajax的回调。。。
请哪位大哥、大姐帮个忙,给个好的解决方案啊!!!!

jeongee 发表于 2011-9-19 10:39:52

ajax post过去,成功处理后,用js的location方法跳转

yuzhigang5460 发表于 2011-9-19 10:46:03

本帖最后由 yuzhigang5460 于 2011-9-19 10:46 编辑

可以在view中使用一个隐藏表单,
<input type="hidden"name="mydata" value="myvalue"/>
隐藏表单是可以传递数组的,如果数组很大,可以存储该数组的序列化结果,在控制器中然后反序列化,处理后既可以跳转。

薛伟 发表于 2011-9-19 10:48:09

我用的就是这种方法,在控制器中声明几个对应的类属性,用一个方法接收view传递过来的值,并将这些值赋给类属性,在js的回调函数中再转向该控制器中的另一个方法,而在该方法中就可以使用先前赋值的类属性了,那么这些变量是不是必须为static的?还有就是如果有时间延迟,在回调函数转向控制器前,类属性被另一个ajax请求给改变了,咋办,帮忙啊!

yuzhigang5460 发表于 2011-9-19 10:52:26

薛伟 发表于 2011-9-19 10:48 static/image/common/back.gif
我用的就是这种方法,在控制器中声明几个对应的类属性,用一个方法接收view传递过来的值,并将这些值赋给类 ...

这些属性当然不会再有了,因为这是一个新的控制器,相当于是新生成的对象;某种程度上,我觉得你这些数据需要保存,用session或者是数据库。

薛伟 发表于 2011-9-19 11:00:07

感谢,学到不少,采用隐藏表单试试

dde333 发表于 2011-9-19 15:36:14

支持,感谢分享!

八剑 发表于 2011-9-19 16:17:48

我是来学习的:lol

xiaozhuaisnow 发表于 2012-9-21 10:39:54

redirect('/contro/functionname');
页: [1]
查看完整版本: view向controller传递大量数据