`

Ext实例用户管理

阅读更多
     秀一下我多天才做出来的Ext实例:用户管理的增、删、改、查。只是实现了,没有考虑项目框架的构建。有好方法的给提一下。

   用户列页面userlist.jsp:

  

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ include file="/include/taglibs.jsp"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title><tiles:getAsString name="project_name" /></title>
</head>
<body>
<script type="text/javascript">
Ext.onReady(function(){
    // 使用表单提示
    Ext.QuickTips.init();
    // turn on validation errors beside the field globally
    Ext.form.Field.prototype.msgTarget = 'side';
    
    var sm=new Ext.grid.CheckboxSelectionModel();

	var cm=new Ext.grid.ColumnModel([
	    new Ext.grid.RowNumberer(),
		sm,
		{header:'用户名',width:120,align:'center',dataIndex:'userName'},
		{header:'姓名',width:120,align:'center',dataIndex:'realName'},
		{header:'角色',width:100,align:'center',dataIndex:'roleName'},
		{header:'创建日期',width:150,align:'center',renderer: Ext.util.Format.dateRenderer('Y-m-d H:i:s'),dataIndex:'createTime'}
	]);

	cm.defaultSortable=true;

	var ds=new Ext.data.Store({
	    //proxy:new Ext.data.MemoryProxy(data),
	    proxy:new Ext.data.ScriptTagProxy({url:'UserListAction.do'}),
		reader:new Ext.data.JsonReader(
		    {totalProperty:'totalProperty',
			 root:'user'
			},
		[{name:'id',mapping:'userId'},
		 {name:'userName'},
		 {name:'realName'},
		 {name:'roleName'},
		 {name:'createTime',type: 'date', dateFormat: 'Y-m-d H:i:s'}
		])
	});

	var searchbar=new Ext.Toolbar({
	    id:'searchbar',
		items:['用户名',
		    new Ext.form.TextField({
			    id:'userName',
				width:100
			}),' ',
			new Ext.Toolbar.Button({
			    id:'searchbutton',
				text:'查询',
				handler:doSearch
			})
		]
	});

	function doSearch(){
	    ds.load(
	        {params:{
	            start:0,
	            limit:10,
	            userName:Ext.get('userName').dom.value
	    }});
	}

	var paging=new Ext.PagingToolbar({
	    pageSize:10,
		store:ds,
		displayInfo:true,
		displayMsg:'显示第{0}条到{1}条记录,一共{2}条',
		items:
		["-"," ",
		    {text:'添加',
		     tooltip:'添加一条系统用户信息',
		     handler:function(){
			     window.location="UserListNaviAction.do?action=UserAdd";
			 }
			},
		"-"," ",
		    {text:'修改',
		    tooltip:'修改一条系统用户信息',
		     handler:function(){
		         var _record=grid.getSelectionModel().getSelected();
		         if(sm.getCount()==1){
		             window.location='UserListNaviAction.do?action='+'UserEdit'+'&userId='
				     +_record.get('id');
				 }else
				     Ext.Msg.alert('提示', '请选择一条记录!');
			 }
			},
		 "-"," ",{text:'删除',
		      tooltip:'删除选择的系统用户信息',
		      handler:function(){
		          if(sm.hasSelection()){
		              Ext.MessageBox.confirm('提示','你确定要删除该用户信息吗?',
		                  function(button){
		                      if(button=='yes'){
		                          var list=sm.getSelections();
		                          var jsonData="";
		                          for(var i=0;i<list.length;i++){
		                              var id=list[i].data["id"];
		                              if(i==0){
		                                  jsonData=jsonData+id;
		                              }else{
		                                  jsonData=jsonData+","+id;
		                              }
		                          }
		                          window.location='UserListNaviAction.do?action='+'UserDelete'+'&delIds='
				                  +jsonData;
		                      }
		                  }
		              );
		          }else{
		              Ext.Msg.alert('提示', "请至少选择一条记录!");
		          }
		      }
		    }
		],
		emptyMsg:"查询记录为空!"
	});

	var grid=new Ext.grid.EditorGridPanel({
	    renderTo:'content',
		cm:cm,
		ds:ds,
		sm:sm,
		tbar:searchbar,
		bbar:paging,
		height:400,
		bodyStyle:'width:100%',
		stripeRows: true,
		title:'用户管理'
	});
	
    ds.load({params:{start:0, limit:10}});

});
</script>
<div id="content"  style="width:1100px;padding:10px;"></div>
</body>

   struts Action类UserListAction.java:

  

package actions.common.user;

import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Locale;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.json.JSONObject;
import org.json.JSONArray;

import domain.common.TbUser;
import service.common.UserService;
/**
 * 用户列表Action.
 * @author jinyy
 */
public class UserListAction extends Action {

    /**
     * Logger for this class.
     */
    private static final Logger logger = Logger.getLogger(UserListAction.class);

    final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.UK);

    /**
     * UserService.
     */
    private UserService userService;

    /**
     * @param mapping struts mapping
     * @param request request
     * @param form action form
     * @param response response
     * @return action forward
     * @throws Exception any exception
     */
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        String userName = request.getParameter("userName");
        String start = request.getParameter("start");
        String limit = request.getParameter("limit");
        int index=0;
        int pageSize=10;
        if (start != null) {
            index = Integer.parseInt(start);
            pageSize = Integer.parseInt(limit);
        }
        logger.info("list user - User Name: " + userName);
        String delIds = request.getParameter("delIds");
        if (delIds != null && !"".equals(delIds)) {
            String[] ids = delIds.split(",");
            for (String id : ids) {
                userService.delete(Integer.parseInt(id));
            }
        }

        // 调用service方法
        List<TbUser> userList = userService.queryLists(userName);
        Integer count = userList.size();
        boolean scriptTag = false;
        response.setContentType("text/html;charset=UTF-8");
        response.setHeader("Cache-Control", "no-cache");
        response.setCharacterEncoding("UTF-8");
        request.setCharacterEncoding("GBK");
        String cb = request.getParameter("callback");
        if (cb != null) {
            scriptTag = true;
            response.setContentType("text/javascript");
        } else {
            response.setContentType("application/x-json");
        }
        PrintWriter out = response.getWriter();
        if (scriptTag) {
            out.write(cb + "(");
        }
        JSONObject object = new JSONObject();
        JSONArray js = new JSONArray();
        try {
            Object[] users = userList.toArray();
            for (int i = index; (i < pageSize + index) && (count - 1 >= i); i++) {
                JSONObject objTemp = new JSONObject();
                objTemp.put("userName", ((TbUser) users[i]).getUserName());
                objTemp.put("userId", ((TbUser) users[i]).getUserId());
                objTemp.put("realName", ((TbUser) users[i]).getRealName());
                objTemp.put("roleName", ((TbUser) users[i]).getRoleName());
                if (((TbUser) users[i]).getCreateTime() != null) {
                    objTemp.put("createTime", sdf.format(((TbUser) users[i]).getCreateTime()));
                }
                js.put(objTemp);
            }
            object.put("user", js);
            object.put("totalProperty", count);
            out.print(object.toString());
            if (scriptTag) {
                out.write(");");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * @param pUserService the userService to set
     */
    public void setUserService(UserService pUserService) {
        userService = pUserService;
    }

}

 

   

分享到:
评论

相关推荐

    ext 实例集

    "EXT实例集"是一个集合,包含了多种EXT的使用示例,对于初学者和有经验的EXT开发者来说都是一个宝贵的资源。 在EXT中,组件是构建用户界面的基础,包括表格(Grid)、面板(Panel)、窗口(Window)、菜单(Menu)...

    ext实例综合

    "EXT实例综合"是一个关于JavaScript库EXT的专题学习资料,主要涵盖了EXT 2.0.2版本中的ASP.NET(.aspx)环境下的应用。EXT是一个强大的JavaScript框架,专为构建富客户端Web应用程序而设计,提供了丰富的组件和数据...

    ext后台经典实例

    "EXT后台经典实例"指的是使用EXT与后端服务器进行交互的典型应用场景,通常涉及到Ajax通信、数据模型、Store和Grid等核心概念。 在EXT中,数据通常是通过Store来管理的。Store连接到后端服务器,负责加载、保存和...

    EXT教程EXT用大量的实例演示Ext实例

    Ext实例 Ext教程主要介绍了Ext JS的多个实例,涵盖了从基础的表格控件到复杂交互的弹出窗口。Ext JS是基于JavaScript的框架,广泛用于开发富互联网应用程序(RIA),支持多种浏览器,并对旧版IE有良好支持。Ext JS...

    EXT酒店管理实例EXT酒店管理实例

    EXT酒店管理实例是一种基于Web的管理系统,主要用于提升酒店的运营效率和服务质量。EXT是一个JavaScript框架,它提供了丰富的用户界面组件和强大的数据管理功能,使得开发人员可以构建出交互性强、性能优秀的应用...

    ext实例 ext操作步骤

    EXT实例通常涉及到一系列操作步骤,包括页面布局、窗口创建以及表格的使用。 **页面布局**是EXT的核心功能之一,它提供了多种布局模式来适应不同设计需求。常见的布局有: 1. **Accordion布局**:这种布局方式使得...

    ext 实例 示例 实例 示例

    EXTJS 提供了一套完整的组件模型、数据绑定、布局管理、表单控件等特性,使得开发者能够创建功能丰富的、交互性强的用户界面。在给定的标题和描述中,“EXT 实例 示例 实例 示例”暗示我们将探讨EXTJS 的具体实例和...

    一个很好的EXTGRID实例

    EXTGRID是EXT JS库中的一个...综上所述,EXTGRID实例展示了如何利用EXT JS库创建一个功能强大且用户友好的数据管理界面,通过深入研究这个实例,开发者可以学习到EXT GRID的各种特性和用法,提升自己的前端开发技能。

    ext几个实例

    在EXTJS中,Ext.AJAX和Ext.FormPanel是两个核心组件,它们分别用于异步与服务器进行数据交互和构建用户界面表单。本文将详细介绍如何使用这两个组件构建一个完整的登录案例,包括与MySQL数据库的交互。 **1. Ext....

    Ext用户管理界面的实例

    用Ext实现的用户管理界面,完成了部分。 包括用户列表; 用树展开的用户分组; 添加用户; 地址导航等。 预览: http://hi.baidu.com/lhj_5460/blog/item/03e6b3028b2fd9e708fa9387.html

    EXT_JS实例,官方实例

    EXT JS实例通常包括一系列预定义的组件、布局、数据绑定机制和丰富的用户界面控件,这些都极大地简化了开发复杂的Web应用。 在"EXT_JS实例,官方实例"这个压缩包中,你将找到EXT JS 3.2.1版本的官方示例。EXT JS ...

    Ext JS实例 学生信息管理系统

    在"Ext JS实例 学生信息管理系统"这个项目中,我们将深入探讨如何利用Ext JS来构建一个实际的应用系统。 首先,`students.sql`文件是数据库脚本,通常用于创建数据库表结构和初始数据。在这个例子中,它可能包含了...

    DONET下Ext实例

    标题中的"DONET下EXT实例"指的是一个使用EXTJS开发的.NET应用程序示例。 这个实例是针对初学者设计的,使用了Visual Studio 2008作为开发工具,并且基于EXTJS 2.0版本。EXTJS 2.0是一个早期的版本,但它包含了许多...

    EXT 实例免费下载!(已经删除)

    从上下文判断,这里的“EXT实例”很可能是指一种特定的软件工具或数据集,可供用户免费下载和使用。不过,由于缺乏具体细节,我们只能基于常见的可能性进行推测。 #### 1.2 可能的应用场景 - **软件开发**:如果...

    ext后台管理

    "EXT后台管理"是一个基于ExtJS前端框架,结合PHP后端语言和MySQL数据库构建的小型应用程序系统。..."EXT后台管理"系统展示了如何将这些技术融合在一起,为用户提供一个功能完备、操作便捷的后台管理平台。

    EXT实例+JSON

    EXT实例与JSON的结合使用,通常涉及到以下几个关键步骤: 1. **创建数据模型(Model)**:EXT允许定义数据模型来描述数据结构,这有助于保持数据的一致性。例如,你可以创建一个名为`Person`的模型,包含`name`和`...

    EXT js 实例 学生成绩管理

    在"EXT js 实例 学生成绩管理"这个项目中,我们将探讨如何使用 EXT JS 来实现一个简单的学生成绩管理系统。 首先,我们来看一下系统的主要组成部分: 1. **数据模型(Model)**:在 EXT JS 中,数据模型用于定义和...

    java ajax ext实例

    在"Java AJAX ext实例"中,我们主要探讨以下几个关键知识点: 1. **EXT.js框架**:EXT.js 提供了一整套高度可定制的组件,如窗口、面板、表格、表单等,使得开发者可以快速构建复杂的用户界面。它的组件化设计允许...

    EXT JS 实例集合

    EXT JS 提供了丰富的组件、布局管理、数据绑定、拖放功能等,使得开发者可以构建出美观且功能强大的用户界面。EXT JS 的实例集合通常包含各种组件的示例代码,帮助开发者更好地理解和运用EXT JS。 在"EXT 前台 实例...

    Ext 3.0源码+典型实例

    学习 Ext 3.0 时,首先要掌握其核心组件和布局管理,然后理解数据模型和数据绑定,最后通过实践加深对事件系统和 MVC 模式的理解。此外,熟练运用 JSON 和 AJAX 进行前后端通信也是必不可少的技能。通过这个资源包,...

Global site tag (gtag.js) - Google Analytics