论坛首页 Java企业应用论坛

关于Struts2+JSON中集合参数的传递

浏览 10971 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-10-23  
我在前端写这样一段:


Java代码 
//获取表单值,并以json的数据形式保存到params中 
                var params = { 
                     
                    list : [ { 
                        "name" : "小明", 
                        "age" : 12 
                    }, { 
                        "name" : "小红", 
                        "age" : 14 
                    } ] 
                } 
                //使用$.post方式     
                $.post(url, //服务器要接受的url 
                        params, //传递的参数      
                        function cbf(data) {  
                            //alert(data); 
                             
                        }, 'json' //返回的类型  
 
                ); 
            }); 
在url提交到的Action为:


Java代码 
public class AjaxLoginAction extends ActionSupport { 
private List list; 
     
    public List getList() { 
        return list; 
    } 
 
 
    public void setList(List list) { 
        this.list = list; 
    } 



我打印list的size() 的个数为2

这个list里面放的是2个什么对象?

可是我怎么遍历出"小红"和"小明"

我写了个Student Class有Name和Age属性
(List<Student>)list   没有用..
换成数组也没用...

JSON反序列化?   我知道JSONObject.fromObject(String);  可是怎么得到参数字符串


小白求指教...  希望各位能给个实例代码学习
   发表时间:2011-10-25  
....大牛们    哪去了
0 请登录后投票
   发表时间:2011-10-25  
你action不就是要拿页面的list参数嘛,在页面定义list就行了啊
0 请登录后投票
   发表时间:2011-10-25  
JSONObject jsonObj = JSONObject.fromObject(json);
JSONObject.toBean(jsonObj, MyBean.class);

不知道这样可行否?
0 请登录后投票
   发表时间:2011-10-25  
用字符串接受list。
然后在转。
0 请登录后投票
   发表时间:2011-10-25  
如果action中定义了List<Student> list,params可以自己组装成&list[0].name=xxx&list[0].age=xxx&list[1].name=xxxx格式。在struts2中貌似可以自动装配成list
0 请登录后投票
   发表时间:2011-10-25  
你这样组装数据已经错了,传入后台的是两个Key为list的Object [],后台的list可能被赋值了两次
0 请登录后投票
   发表时间:2011-10-26  
使用普通的form也不能这么提交啊。。。
考虑下封装吧
比如: “小明”,“11”;“小红”,“12”;
后台自己拆分,先拆分号再拆逗号
0 请登录后投票
   发表时间:2011-10-26  
1.$.post(..)要传递的参数的值转成json字符串
2.action中的list定义成String类型
3.拿到前台传来的json字符串再转成List<Student>
0 请登录后投票
   发表时间:2011-10-26  
设置返回的result的type为json  引入struts2的json包,可自定义返回json串的形式
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics