jQuery MiniUI

 找回密码
 立即注册
查看: 5567|回复: 12
打印 上一主题 下一主题

集成struts2出错 [复制链接]

Rank: 1

跳转到指定楼层
楼主
发表于 2013-5-23 22:17:14 |只看该作者 |倒序浏览
页面报 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>

Rank: 8Rank: 8

沙发
发表于 2013-5-24 09:17:09 |只看该作者
请注意返回的结构是否正确
数据的结构是这样的

{
    total: 100,     //总记录数
     data: [         //分页后的数组数据
         { ... },
        { ... },
        ...
    ]
}

Rank: 1

板凳
发表于 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

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

Rank: 1

地板
发表于 2013-5-24 14:23:58 |只看该作者
factory 发表于 2013-5-24 09:17
请注意返回的结构是否正确
数据的结构是这样的

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

Rank: 1

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

哦哦,知道为什么老加载了,因为我grid.load了...额 。。。短路了....

Rank: 1

6#
发表于 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' 为空或不是对象
是什么原因?

Rank: 1

7#
发表于 2013-5-24 23:19:04 |只看该作者
factory 发表于 2013-5-24 09:17
请注意返回的结构是否正确
数据的结构是这样的

顺便问下 有debug工具吗?

Rank: 9Rank: 9Rank: 9

8#
发表于 2013-5-26 10:07:50 |只看该作者
你可以在后台debug断点调试,看最后返回的数据。
也可以用httpwatch或firebug在前台看ajax的JSON数据。

Rank: 1

9#
发表于 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"}]}

Rank: 8Rank: 8

10#
发表于 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 ...

稍等,我看下

Archiver|普加软件

GMT+8, 2024-6-17 00:53 , Processed in 1.019393 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部