转自:https://bbs.csdn.net/topics/390980437

easyui+struts2:datagrid无法访问到指定action:

userlist.jsp部分代码:

XML/HTML code

 

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
    <script type="text/javascript" src="libs/easyui-1.3.5/jquery.min.js"></script>
    <script type="text/javascript" src="libs/easyui-1.3.5/jquery.easyui.min.js"></script>
    <script type="text/javascript" src="libs/easyui-1.3.5/locale/easyui-lang-zh_CN.js"></script>
    <link rel="stylesheet" type="text/css" href="libs/easyui-1.3.5/themes/default/easyui.css" >
    <link rel="stylesheet" type="text/css" href="libs/easyui-1.3.5/themes/icon.css">
 
    <script type="text/javascript">
    $(function() {
        $('#mydatagrid').datagrid({
            title : '用户管理',
            iconCls : 'icon-ok',
            width : 600,
            pageSize : 5,//默认选择的分页是每页5行数据
            pageList : [ 5, 10, 15, 20 ],//可以选择的分页集合
            nowrap : true,//设置为true,当数据长度超出列宽时将会自动截取
            striped : true,//设置为true将交替显示行背景。
            collapsible : true,//显示可折叠按钮
            toolbar:"#tb",//在添加 增添、删除、修改操作的按钮要用到这个
            url:'userList.action',//url调用Action方法
            loadMsg : '数据装载中......',
            singleSelect:true,//为true时只能选择单行
            fitColumns:true,//允许表格自动缩放,以适应父容器
            //sortName : 'xh',//当数据表格初始化时以哪一列来排序
            //sortOrder : 'desc',//定义排序顺序,可以是'asc'或者'desc'(正序或者倒序)。
            remoteSort : false,
              frozenColumns : [ [ {
                field : 'user',
                checkbox : true
            } ] ], 
            pagination : true,//分页
            rownumbers : true//行数
        });    
         
    });
     
</script>    
 
</head>
<body>
 
 
    <table id="mydatagrid">
 
       <thead>
             <tr>
 
                <th data-options="field:'user',width:100,align:'center'">用户名</th>
                <th data-options="field:'name',width:100,align:'center'">姓名</th>
 
            </tr>
        </thead>
 
    </table>
    
</body>
</html>

struts.xml配置:

XML/HTML code

 

?

1
2
3
4
5
6
7
8
9
10
     
<package name="struts2" extends="json-default">
        
        <action name="userList" class="com.xforce.login.action.UserListAction"  method="getUsers">
            <result type="json" >
                <param name="root">rows</param>
            </result>
        </action>
         
    </package>

UserListAction.java代码:

Java code

 

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package com.xforce.login.action;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
 
import org.hibernate.engine.spi.RowSelection;
 
import com.opensymphony.xwork2.ActionSupport;
import com.xforce.login.dao.impl.UserDaoImpl;
import com.xforce.login.entity.User;
//import com.alibaba.fastjson.JSON;  
//import com.alibaba.fastjson.JSONObject;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
 
 
import com.xforce.login.entity.User;
import com.xforce.login.dao.UserDao;
import com.xforce.login.dao.impl.UserDaoImpl;
 
public class UserListAction extends ActionSupport {
     
    private JSONObject rows = new JSONObject();
 
    public String getUsers() throws Exception{  
        UserDaoImpl udi = new UserDaoImpl();
        List<User> users = udi.listUser();
        HashMap<String, Object> maps = new HashMap<String, Object>();  
        List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();  
         for (User user :users) {  
              HashMap<String, Object> hashMap = new HashMap<String, Object>();  
              hashMap.put("name",user.getName());  
              hashMap.put("user",user.getUser());
              list.add(hashMap);  
        }  
        maps.put("Rows", list);  
        //rows = JSONObject.parseObject(JSON.toJSONString(maps));  
        rows = JSONObject.fromObject(maps);  
        System.out.println(rows);
        return SUCCESS;   
    }  
    
    public JSONObject getRows() {  
             return rows ;  
    }  
    
    public void setRows(JSONObject rows) {  
             this.rows = rows;  
    }  
 
}

调试时无法显示数据,在UserListAction中设置断点,发现未进入,(JSP页面利用LigerUI可正常访问UserListAction返回json显示数据),chrome调试审查元素,network中显示如下图:

不能访问http://localhost:8080/FixOnline/userList.action
但在地址栏中输入该url,返回结果:

XML/HTML code

 

?

1
{"Rows":[{"name":"管理员","user":"admin"},{"name":"李四","user":"ls"}]}

项目添加的包如下图:

jquery和easyUI 的文件引入路径错了,所以easyUI的代码无法识别。如果你的libs是webapp根目录下的在前面加个’/‘就可以了
如果不是可以用${request.contextPath}来获取项目路径
如果大量页面需要引用的话就用<c:set scope="application" var="path" value="<%=request.getContextPath()%>"></c:set>,以后只要用${path}就能代替${request.contextPath}

2018又出新赚钱方式,东直门知道的人都已经赚疯了广告 海南通博网络 · 燨燚
 
0 2015-01-31 13:35:18
引用 ・ 举报 ・ #2 得分:0
引用 1 楼 beautiful_life12 的回复:

jquery和easyUI 的文件引入路径错了,所以easyUI的代码无法识别。如果你的libs是webapp根目录下的在前面加个’/‘就可以了
如果不是可以用${request.contextPath}来获取项目路径
如果大量页面需要引用的话就用<c:set scope="application" var="path" value="<%=request.getContextPath()%>"></c:set>,以后只要用${path}就能代替${request.contextPath}

感谢,应该不是路径问题,easyui的界面显示正常,请看倒数第2张图。
另外在页面中<table>标签加入class属性:

XML/HTML code

 

?

1
<table id="mydatagrid" class="easyui-datagrid">

可以访问到userList.action了,但界面仍不能显示数据。
下图是chrome审查元素中的network:

 
0 2015-01-31 13:41:38
引用 ・ 举报 ・ #3 得分:0
补充一张在页面中<table>标签加入class="easyui-datagrid"属性后的调试图:
 
0 2015-01-31 13:50:03
引用 ・ 举报 ・ #4 得分:0
另外若哪位能提供easyui+struts2+hibernate或是LigerUI+struts2+hibernate包含layout与datagrid增删改查较好的示例demo框架同是万分感激!
 
0 2015-01-31 17:28:45
引用 ・ 举报 ・ #5 得分:15
为了方便大侠们定位问题,我把项目上传了,若有时间麻烦帮忙调试一下。谢了!
数据库:mysql,项目目录中包含数据库fixonline.sql文件。
测试页面http://localhost:8080/userlist1.jsp页面功能即可。

下载地址:http://download.csdn.net/detail/aiolox/8412979

(由于连续回帖数不能超过3,换账号留言。)

劲爆!东直门26岁美女用微信做这个,1年存款吓呆父母!!广告 永丰 · 燨燚
 
0 2015-01-31 22:54:40
引用 ・ 举报 ・ #6 得分:0
引用 5 楼 lixiang584 的回复:

为了方便大侠们定位问题,我把项目上传了,若有时间麻烦帮忙调试一下。谢了!
数据库:mysql,项目目录中包含数据库fixonline.sql文件。
测试页面http://localhost:8080/userlist1.jsp页面功能即可。

下载地址:http://download.csdn.net/detail/aiolox/8412979

(由于连续回帖数不能超过3,换账号留言。)

不好意思,资源未通过审核...

 
0 2015-02-01 00:14:55
引用 ・ 举报 ・ #7 得分:0
发现还是跟json的格式有关,action中

Java code

 

?

1
rows = JSONObject.fromObject(maps);

替换为

Java code

 

?

1
rows = JSONObject.fromObject("{\"rows\":[{\"isLeaf\":0,\"nodeAction\":\"\",\"nodeID\":1,\"nodeIcon\":\"icon-sys\",\"nodeText\":\"系统管理\",\"parenetID\":0},{\"isLeaf\":1,\"nodeAction\":\"sys/entryM.html\",\"nodeID\":2,\"nodeIcon\":\"icon-nav\",\"nodeText\":\"栏目管理\",\"parenetID\":1}],\"total\":2}");

可以展现测试数据...

 
 
0 2015-02-01 09:57:18
引用 ・ 举报 ・ #8 得分:10
 
 
0 2015-02-01 11:01:05
引用 ・ 举报 ・ #9 得分:0
已解决,原来easyui中datagrid绑定json中必须为rows,

Java code

 

?

1
maps.put("Rows", list);

改为小写的rows即可显示数据了...

 
0 2015-06-08 22:11:45
引用 ・ 举报 ・ #10 得分:0
你好,能问下,一开始访问不到action是怎么回事吗,我都搞了三天没找到原因,急死了

东直门股王8年追涨停铁律“1272”曝光,震惊众人东正金融 · 燨燚
 
0 2016-03-21 07:52:10
引用 ・ 举报 ・ #11 得分:0
引用 10 楼 H352296390 的回复:

你好,能问下,一开始访问不到action是怎么回事吗,我都搞了三天没找到原因,急死了

开始访问到了action,但json格式不对,所以datagrid无法显示数据

 
 
0 2017-02-24 21:37:04
引用 ・ 举报 ・ #12 得分:0
map.put("total", xdzbtList.size());
map.put("rows", xdzbtList);
少了一句
 
 
0 2017-04-19 11:14:25
引用 ・ 举报 ・ #13 得分:0
我是请求都没有发到后台啊 ,用地址都能请求到数据 ,大神求指点

easyui+struts2:datagrid无法不能得到数据的更多相关文章

  1. Easyui的datagrid结合hibernate实现数据分页

    最近在学习easyui的使用,在学到datagrid的时候遇到了一些问题,终于抽点时间整理了一下,分享出来,请各位前辈高手多多指教! 1.先来看看效果,二话不说,上图直观! 2.easyui的data ...

  2. easyui的datagrid用js插入数据等编辑功能的实现

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. easyUI之datagrid绑定后端返回数据的两种方式

    先来看一下某一位大佬留下的easyUI的API对datagrid绑定数据的两种方式的介绍. 虽然精简,但是,很具有“师傅领进门,修行靠个人”的精神,先发自内心的赞一个. 但是,很多人和小编一样,第一次 ...

  4. 利用Aspose.Cells完成easyUI中DataGrid数据的Excel导出功能

    我准备在项目中实现该功能之前,google发现大部分代码都是利用一般处理程序HttpHandler实现的服务器端数据的Excel导出,但是这样存在的问题是ashx读取的数据一般都是数据库中视图的数据, ...

  5. 关于EasyUI 1.5版Datagrid组件在空数据时无法显示"空记录"提示的BUG解决方法

    问题:jQuery easyUI中Datagrid,在表格数据加载无数据的时候,如何显示"无记录"的提示语? 解决jQuery EasyUI 1.5.1版本的Datagrid,在处 ...

  6. easyUI的datagrid每行数据添加操作按钮的方法

    今天做项目的时候,想在easyui的datagrid每一列数据后边都加上一个操作按钮,一开始想在后台拼接字符串用JSON传回,但是我测试之后发现这个方法不管用,在网上搜索了一下,整理如下: 其实要加一 ...

  7. easyui datagrid 异步加载数据时滚动条有时会自动滚到最底部的问题

    在使用easyui 的datagrid异步加载数据时发现滚动条有时会自动滚到最底部.经测试发现,如果加载数据前没有选中行则不会出现这个问题.这样我们可以在重新异步加载数据前取消选中行就可以避免这个问题 ...

  8. EasyUI queryParams属性 在请求远程数据同时给action方法传参

    http://www.cnblogs.com/iack/p/3530500.html?utm_source=tuicool EasyUI queryParams属性 在请求远程数据同时给action方 ...

  9. easyui使用datagrid时列名包含特殊字符导致表头与数据错位的问题

    做一个用easyui的datagrid显示数据的功能时发现表格的列头与数据错位了,而且这个现象不总是能重现,一直没搞清楚原因.后来偶然在控制台看出了一点端倪: 推测表头或者单元格的class名应该是用 ...

随机推荐

  1. [Windows Server 2012] Discuz X3安全设置

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★[护卫神·V课堂]是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:Discu ...

  2. 【译】x86程序员手册12-4.2系统指令

    4.2 Systems Instructions 系统指令 Systems instructions deal with such functions as: 系统指令具有以下功能: Verifica ...

  3. shell编程之grep命令的使用

    大家在学习正则表达式之前,首先要明确一点,并把它牢牢记在心里,那就是: 在linux中,通配符是由shell解释的,而正则表达式则是由命令解释的,不要把二者搞混了.切记!!! 通常有三种文本处理工具/ ...

  4. jenkins执行python脚本

    参考: https://blog.csdn.net/qq_39247153/article/details/81003244 https://blog.csdn.net/huashao0602/art ...

  5. javascript模块化编程(一)(http://www.ruanyifeng.com/blog/2012/10/javascript_module.html)

    Javascript模块化编程(一):模块的写法   随着网站逐渐变成"互联网应用程序",嵌入网页的Javascript代码越来越庞大,越来越复杂. 网页越来越像桌面程序,需要一个 ...

  6. windows 小知识---windows下生成公钥和私钥

    首先Windows操作系统需要安装git. 安装完成后,再到任意的文件夹内,点击右键.选择git bash here 打开之后,输入ssh-keygen,一路按enter键. 全部结束后,再到C:\U ...

  7. Js—innerHTML和innerText的区别

    1.innerHTML属性和innerText属性 都是对元素的一个操作,简单讲,innerHTML可以在某种特定环境下重构某个元素节点的DOM结构,innerText只能修改文本值 在JavaScr ...

  8. APIshop精选接口助力双十一电商业务

    距离2018年双11的购物盛典已经不到一个月了,各大电商之间的战役已经悄然打响,今年的双11仍会是一场电商鏖战,想必又会打破2017年双11近2540亿的全网成交总额记录. 据统计,去年双11全天共产 ...

  9. yum插件

    参考文章: http://www.linuxfly.org/post/297/ [root@dnstest07.tbc /home/ahao.mah] #rpm -qa |grep yum yum-p ...

  10. php第十六节课

    分页 <?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 private $ ...