jQuery MiniUI

标题: 集成struts2出错 [打印本页]

作者: yubin99521    时间: 2013-5-23 22:17:14     标题: 集成struts2出错

页面报 list/list.action  json is error.
下面是我的代码,请帮忙看看问题出在哪,谢谢。
struts.xml
<package name="default" namespace="/list" extends="json-default">
        <default-action-ref name="index" />
        <action name="list" class="com.action.UseListAction" method="getUseList">
            <result type="json">
                    <param name="root">result</param>
            </result>
        </action>
</package>
actionpublic String getUseList() {
                try {
                        List<User> list = DB.DBSelect("select * from t_user");
                        String s = JSONUtil.getJSON(list);
                        result = s;
                        System.out.println(list);
                } catch (Exception e) {
                        e.printStackTrace();
                }
                return SUCCESS;
        }

jsp
<div id="datagrid" class="mini-datagrid" style="width:800px;height:280px;text-align:center;"
                url="list/list.action" idField="id" allowResize="true" pageSize="20"
                allowCellEdit="true" allowCellSelect="true" multiSelect="true">
                <div property="columns">
                        <div type="indexcolumn"></div>
            <div type="checkcolumn"></div>
                        <div field="id" width="120" headerAlign="center" allowSort="true">编号
                                <input property="editor" class="mini-textbox" style="width:100%;" />
                        </div>
                        <div field="name" width="120" headerAlign="center" allowSort="true">姓名
                                <input property="editor" class="mini-textbox" style="width:100%;" />
                        </div>
                        <div field="gender" width="100" renderer="onGenderRenderer" align="center" headerAlign="center">性别
                                <input property="editor" class="mini-combobox"  style="width:100%;" data="Genders" />
                        </div>
                        <div field="age" width="100" allowSort="true">年龄
                                <input property="editor" class="mini-spinner" minValue="0" maxValue="200" value="25" style="width:100%;" />
                        </div>
                        <div field="birthday" width="100" allowSort="true" dateFormat="yyyy-MM-dd">出生日期
                                <input property="editor" class="mini-datepicker" style="width:100%;" />
                        </div>
                        <div field="createtime" width="100" headerAlign="center" dateFormat="yyyy-MM-dd" allowSort="true">创建日期</div>
                        <div field="remarks" width="120" headerAlign="center" allowSort="true">备注
                                <input property="editor" class="mini-textarea" style="width:100%;" minHeight="80" />
                        </div>
                </div>
        </div>


作者: factory    时间: 2013-5-24 09:17:09

请注意返回的结构是否正确
数据的结构是这样的

{
    total: 100,     //总记录数
     data: [         //分页后的数组数据
         { ... },
        { ... },
        ...
    ]
}
作者: liuyuanmuse    时间: 2013-5-24 14:19:50

我的部分代码
action:
public String getProvinceInfoList2() {
                try {
                                                //list记得加get、set方法
                        list = this.provinceInfoServiceImpl.provinceInfoList();
                } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
                return SUCCESS;
        }
struts配置文件:
<action name="provinceInfoList2" class="com.hy.action.ProvinceInfoAction" method="getProvinceInfoList2">
            <result type="json">
                        <param name="root">list</param>
                </result>
        </action>
页面上:
dataGrid的url里写的是:provinceInfoList2.action

我的是运行正确,数据显示了。希望能帮助到你。

作者: liuyuanmuse    时间: 2013-5-24 14:23:58

factory 发表于 2013-5-24 09:17
请注意返回的结构是否正确
数据的结构是这样的

版主,dataGrid的url页面加载时必须要写吗?不写就报json error。我现在是想点击某按钮根据条件查询,再给gateGrid里赋值,应该怎么处理呢?
作者: liuyuanmuse    时间: 2013-5-24 14:35:00

liuyuanmuse 发表于 2013-5-24 14:23
版主,dataGrid的url页面加载时必须要写吗?不写就报json error。我现在是想点击某按钮根据条件查询,再 ...

哦哦,知道为什么老加载了,因为我grid.load了...额 。。。短路了....
作者: yubin99521    时间: 2013-5-24 23:18:13

factory 发表于 2013-5-24 09:17
请注意返回的结构是否正确
数据的结构是这样的

数据结构:
{"total":2,"data":[{"createtime":"2001-1-1","birthday":"2001-1-1","remarks":"搜索","Id":1,"name":"tom"},{"createtime":"2991-1-1","birthday":"2222-1-1","remarks":"斯蒂芬","Id":2,"name":"can"}]}
报如下错误:
消息: 'data' 为空或不是对象
是什么原因?

作者: yubin99521    时间: 2013-5-24 23:19:04

factory 发表于 2013-5-24 09:17
请注意返回的结构是否正确
数据的结构是这样的

顺便问下 有debug工具吗?
作者: niko    时间: 2013-5-26 10:07:50

你可以在后台debug断点调试,看最后返回的数据。
也可以用httpwatch或firebug在前台看ajax的JSON数据。
作者: yubin99521    时间: 2013-5-26 16:05:45

niko 发表于 2013-5-26 10:07
你可以在后台debug断点调试,看最后返回的数据。
也可以用httpwatch或firebug在前台看ajax的JSON数据。 ...

后台数据格式
{"total":2,"data":[{"createtime":"2001-1-1","birthday":"2001-1-1","remarks":"搜索","Id":1,"name":"tom"},{"createtime":"2991-1-1","birthday":"2222-1-1","remarks":"斯蒂芬","Id":2,"name":"can"}]}
作者: factory    时间: 2013-5-27 09:28:38

yubin99521 发表于 2013-5-26 16:05
后台数据格式
{"total":2,"data":[{"createtime":"2001-1-1","birthday":"2001-1-1","remarks":"搜索","I ...

稍等,我看下
作者: factory    时间: 2013-5-27 09:49:20

yubin99521 发表于 2013-5-26 16:05
后台数据格式
{"total":2,"data":[{"createtime":"2001-1-1","birthday":"2001-1-1","remarks":"搜索","I ...

我吧你的数据放到一个静态数据,你的data是正确的
作者: yubin99521    时间: 2013-5-27 23:32:18

factory 发表于 2013-5-27 09:49
我吧你的数据放到一个静态数据,你的data是正确的

那怎么到前台就报data为空或不是对象呢?
作者: niko    时间: 2013-5-28 08:52:49

请用jquery的ajax访问你的数据地址,看返回的内容是否是JSON对象。




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2