转自: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. 最新 Xilinx vivado IP许可申请

    xilinx的fpga使用vivado开发,zynq系列fpga的SOC开发成为主流,加快fpga开发,也进一步提高了fpga开发的灵活性. xilinx提供很多ip核供开发者直接使用,开发快捷方便, ...

  2. Uncaught TypeError: str.replace is not a function

    在做审核页面时,点击审核通过按钮不执行 后来F12控制台查看发现有报错 是因为flisnullandxyzero未执行 然后找出这个方法,此方法为公共方法,将这个方法复制出来 然后使用console. ...

  3. EF 配置

    DbContext public class ZSZDbContext : DbContext { //ILog ILogger 容易混淆 private static ILog log = LogM ...

  4. BFS入门篇——RQNOJ195&&335

    PID195 / 校园迷宫☆ 从x,y走到去q,w的最小步数,限制是有的点可走,有的点不可走,BFS嘛. #include<bits/stdc++.h> using namespace s ...

  5. Python中的可迭代对象/迭代器/For循环工作机制/生成器

    本文分成6个部分: 1.iterable iterator区别 2.iterable的工作机制 3.iterator的工作机制 4.for循环的工作机制 5.generator的原理 6.总结 1.i ...

  6. 浏览器控制之 selenium,phantomJs谷无头浏览器

    目录 浏览器控制之 selenium,phantomJs谷无头浏览器 selenium phantomJs 需求是尽可能多的爬取豆瓣网中的电影信息 谷歌无头浏览器 浏览器控制之 selenium,ph ...

  7. Serial Fluent UDF on Windows

    test test Table of Contents 1. Serial UDF on Windows OS 1 Serial UDF on Windows OS Note: Udf has to ...

  8. 使用命令行打开vscode

    今天看到一个博客,直接使用code . 就可以打开vscode

  9. 【codeforces 527B】Error Correct System

    [题目链接]:http://codeforces.com/contest/527/problem/B [题意] 给你两个字符串; 允许你交换一个字符串的两个字符一次: 问你这两个字符串最少会有多少个位 ...

  10. 清北学堂模拟赛d6t4 数组异或

    分析:直接O(n^3)做是只有50分的,可以加一点小小的优化,就是c[k]可以从c[k-1]得到,但是还是只有60分,从宏观意义上是不能继续优化了.对于这类涉及到位运算的性质的题目,将每个数转化成二进 ...