`
luren85
  • 浏览: 86748 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

struts2 easyui插件pagination to DataGrid

阅读更多

         测试通过struts2 jquery pagination to DataGrid实例。官网使用的是etmvc,很新,功能看的不错,但是真正开发中应该很少有人会愿意在自己的项目中去冒这个险吧,并不是说etmvc不好,只是大多数都会报有一种观望的态度来对待新事物。所以使用struts2配合easyui。


       那首先要解决的就是struts2对json的支持,因为easyui对数据的操作绝大多数都是基于json的。使用jar包支持如下:

commons-logging-1.0.4.jar, freemarker-2.3.8.jar, ognl-2.6.11.jar, struts2-core-2.0.11.1.jar, xwork-2.0.4.jar, jsonplugin-0.32.jar, json-lib-2.1.jar, commons-beanutils-1.8.0.jar, commons-collections-3.2.1.jar, commons-lang-2.4.jar, ezmorph-1.0.6.jar。

记住这些jar都是必须的,一个也不能少哟!~~

 

           然后我们就开始看代码吧。

       首先是User.java,这是一个pojo。不用多说了:

package vo;

public class User {
    private int id;
    private String username;
    private String password;
    //此处getter & setter 省略

    ......
}


      然后是PageAction.java,由于只是个demo,急于测试出结果,所以并没有连接数据库,都是在Action中模拟的数据。


package action;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.struts2.ServletActionContext;

import vo.User;

import net.sf.json.JSONObject;

import com.opensymphony.xwork2.ActionSupport;
/**
 * <p>
 * UPDATE: mys(牟玉石)
 * <p>
 * DATE:  2010-5-3 下午03:59:53
 * <p>
 * HISTORY: 1.0
 *
 * @version 1.0
 * @author mys(牟玉石)
 * @since java jdk1.6.0_06<br>
 * @beanid <br>
 *
 * 功能描述:<br>
 */
public class PageAction extends ActionSupport {

    /**
     * @author 牟玉石 at 2010-5-3 下午03:01:35
     */
    private static final long serialVersionUID = 7263568517757245698L;
    private JSONObject result;

    @Override
    public String execute() throws Exception {

        int rows = Integer.parseInt((String) ServletActionContext.getRequest()
                .getParameter("rows"));
       
        int page = Integer.parseInt((String) ServletActionContext.getRequest()
                .getParameter("page"));

        List<User> list = new ArrayList<User>();

        User user = null;
        for (int i = (page-1)*rows; i < rows; i++) {
            user = new User();

            user.setId(i);
            user.setUsername("mys" + i);
            user.setPassword("password" + i);

            list.add(user);
        }

        Map<String, Object> jsonMap = new HashMap<String, Object>();
        //ui需要显示数据的总页数

        jsonMap.put("total", list.size());

        //ui需要实现数据的总记录数
        jsonMap.put("rows", list);

        result = JSONObject.fromObject(jsonMap);

        return SUCCESS;
    }

    public JSONObject getResult() {
        return result;
    }

    public void setResult(JSONObject result) {
        this.result = result;
    }

}


接着就是配置文件struts.xml:


<struts>
    <package name="page" namespace="/" extends="json-default">       
        <action name="page" class="action.PageAction">
            <result type="json">
                <param name="root">result</param>
            </result>
        </action>
    </package>
</struts>


最后就是前台的page.jsp页面:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
    <link type="text/css" rel="stylesheet" href="easyui/themes/default/easyui.css">
    <link type="text/css" rel="stylesheet" href="easyui/themes/icon.css">
    <script type="text/javascript" src="easyui/jquery-1.3.2.min.js"></script>
    <script type="text/javascript" src="easyui/jquery.easyui.min.js"></script>
    <script type="text/javascript">
    $(function(){
        $('#tt').datagrid({
            title:'Load Data',
            iconCls:'icon-save',
            width:600,
            height:250,
            url:'page.action',
            columns:[[
                {field:'id',title:'id',width:80},
                {field:'username',title:'username',width:80},
                {field:'password',title:'password',width:80,align:'right'}
            ]],
            pagination:true
        });
    });
    </script>
</head>
<body>
    <table id="tt"></table>
</body>
</html>

     

1
1
分享到:
评论
3 楼 CL315917525 2010-10-29  
怎么我就始终报rows为空,但是后台确实有数据啊 怎末回事啊楼主
2 楼 luren85 2010-08-25  
对的。只管接收参数就ok
1 楼 gouliren 2010-08-23  
你好 楼主 ,我想问一个问题。pagination 下 page  和 row  两个参数是默认传递到后台的吗?

相关推荐

    struts2结合easyui实现增删改分页排序

    ### Struts2 结合 EasyUI 实现增删改分页排序 #### 一、概述 在Web开发领域,Struts2 和 EasyUI 是两个非常重要的框架和技术。Struts2 是一款基于MVC模式的Java Web应用程序框架,它帮助开发者构建灵活、可扩展的...

    Struts2.3.1与EasyUI1.2.5的整合

    1. **引入依赖**:在项目中添加Struts2和EasyUI的JAR包或Maven依赖,确保所有必要的类库都能被正确引用。 2. **配置Struts2**:在`struts.xml`配置文件中定义Action,指定对应的类和结果页面。例如: ```xml ...

    SSh结合Easyui实现Datagrid的分页显示(多个实例)

    【SSh结合Easyui实现Datagrid的分页显示】是一个典型的Web开发应用场景,涉及到Spring、Struts2和Hibernate(SSh)三大框架与EasyUI前端组件的整合。在这个实例中,我们将探讨如何利用这些技术来实现一个具备分页...

    easyui分页

    EasyUI的DataGrid组件是实现这一功能的好工具,尤其当结合Struts2、Hibernate和Spring框架时。本文将详细讲解如何在Struts2中使用EasyUI的DataGrid进行分页,并接收JSON数据。 首先,EasyUI的DataGrid组件需要从...

    EasyUI开发案例集合

    1. **EasyUI DataGrid 及 Pagination(源码)_7609373.zip**: 这个文件包含的是 EasyUI 中 DataGrid 控件的示例代码,DataGrid 是一种强大的数据展示组件,支持分页、排序、过滤等功能。在 ASP.NET 中,你可以利用它...

    EAsyUI 学习

    1. **EasyUI DataGrid及Pagination** EasyUI 的 DataGrid 是一种表格展示组件,它支持数据的分页、排序、筛选等功能。在源码 _7609373.zip 中,你可以找到如何配置 DataGrid,以及实现分页功能的方法。了解 ...

    easyui 的增册改查完整实例

    分页功能是通过设置datagrid的pagination属性来实现的,可以配置每页显示的条数、显示总记录数等。 2. **Spring框架** Spring是Java领域的一个核心框架,负责处理依赖注入、事务管理、安全控制等。在这个项目中,...

    毕业设计 easyui项目

    例如,使用Struts2的Action来处理HTTP请求,返回JSON格式的数据供EasyUI的组件使用。Spring则可以用来管理服务层和DAO层,提供事务控制和依赖注入等功能。Hibernate则负责数据库操作,通过ORM(对象关系映射)将Java...

    ssh框架使用xml配置开发及注解开发模板 含EasyUI

    Struts2也支持注解开发,可以在Action类和方法上使用`@Action`、`@Results`等注解来简化配置: ```java @Action(value = "saveUser") public String saveUser() { // 业务逻辑 return "success"; } ``` ...

Global site tag (gtag.js) - Google Analytics