`

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

    ext dwr spring 实例

    ext+dwr+spring实例 用到的技术包括Spring,ext,dwr等,数据库是mysql5.0。包含简单的三个Case:“人事管理”,“机构管理”,“用户管理”,虽然不多,但是目的达到了(学习了这三种技术)

    Ext+JS高级程序设计.rar

    1.1.1 获取HTMLElement节点的Ext.Element实例 2 1.1.2 CSS样式操作 3 1.1.3 DOM查询与遍历 4 1.1.4 DOM操作 6 1.1.5 事件处理 9 1.1.6 尺寸大小 13 1.1.7 定位功能 14 1.1.8 动画功能 16 1.1.9 杂项 19 1.2 Ext Core...

    EXT JS源码分析与开发实例宝典【源代码】

    我上传的是【EXT JS源码分析与开发实例宝典】随书附的源代码,实例颇多,包括绘制流程图,制作QQ通讯软件,用户登录注册、文件上传,图片放大缩小等等,企业级管理平台等等,由于上传大小受限,EXT3.0库请另行下载

    Ext江湖(完整+书签).part1

    包括JS基础、Ext的DOM和CSS封装、内置对象的扩展、事件系统、Ajax和Direct、数据和缓存架构、面向对象和继承、UI组件、布局管理、模板、特效、图表和报表、Ext4新特性介绍等内容。文中穿插大量的实例和基础理论解析...

    Efs(Ext上二次开发,标签形式使用Ext) Demo官方项目实例

    a)完整的事务、事件管理、用户、单位、角色、权限管理设计,能快速帮助企业在不同的项目中快速完成用户、单位、角色、权限的分配,迅速投入到项目本身的业务系统开发中。 b)完整的字典管理功能,能方便的对业务...

    ext+Json+dwr+spring+hibernate整合项目实例与资源

    我们一般会使用遵循MVC设计模式的Struts来规范程序结构,使用优秀的ORM组件Hibernate来简化数据库访问操作,使用系统黏合剂Spring来提高开发效率,使用异步访问的Ajax来提高用户体验。而今天我们要做的一个demo是一...

    Ext江湖(完整+书签).part2

    包括JS基础、Ext的DOM和CSS封装、内置对象的扩展、事件系统、Ajax和Direct、数据和缓存架构、面向对象和继承、UI组件、布局管理、模板、特效、图表和报表、Ext4新特性介绍等内容。文中穿插大量的实例和基础理论解析...

    ExtJS5-一个简洁完整的后台管理系统入门实例

    4、通过实现角色管理、用户管理两个基础的功能模块,演示了Viewport、Container、Panel、TreePanel、Grid、Window、Form等常用组件的用法,以及border、column、form、fit、hbox等常用布局方式; 5、通过自定义一个...

    精通JS脚本之ExtJS框架.part1.rar

     《精通JS脚本之ExtJS框架》附有配套光盘,提供了书中实例的源代码和视频教学文件。此外,读者还可以通过访问itzcn网站来获得即时在线帮助。  《精通JS脚本之ExtJS框架》可以作为Web开发的自学参考书,也可以作为...

    入门学习Linux常用必会60个命令实例详解doc/txt

    在系统关机前使用 shutdown命令,系统管理员会通知所有登录的用户系统将要关闭,并且login指令会被冻结,即新的用户不能再登录。 halt 1.作用 halt命令的作用是关闭系统,它的使用权限是超级用户。 2.格式 halt...

    精通JS脚本之ExtJS框架.part2.rar

     《精通JS脚本之ExtJS框架》附有配套光盘,提供了书中实例的源代码和视频教学文件。此外,读者还可以通过访问itzcn网站来获得即时在线帮助。  《精通JS脚本之ExtJS框架》可以作为Web开发的自学参考书,也可以作为...

    tampermonkey:Tampermonkey是最受欢迎的用户脚本管理器,拥有超过1000万用户。 适用于Chrome,Microsoft Edge,Safari,Opera Next和Firefox

    特征: 管理和编辑所有用户脚本单击两次启用和禁用脚本在不同的Chrome实例之间轻松同步脚本通过URL从userscripts.org搜索脚本(启用了TamperFire) 在其他标签,功能和特性下,支持以下功能: 完全不安全的Window...

    MySQL 5.1中文手冊

    5.8. MySQL用户账户管理 5.8.1. MySQL用户名和密码 5.8.2. 向MySQL增加新用户账户 5.8.3. 从MySQL删除用户账户 5.8.4. 限制账户资源 5.8.5. 设置账户密码 5.8.6. 使你的密码安全 5.8.7. 使用安全连接 5.9. 备份与...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    13.6.3 管理ASM实例 13.7 利用srvctl管理RAC数据库 13.7.1 查看实例状态(srvctl status) 13.7.2 查看RAC数据库配置信息(srvctl config) 13.7.3 启动 13.7.4 增加 13.8 测试RAC数据库集群的功能 ...

    Linux 系统管理 命令

    Linux支持的文件系统非常多,包括JFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、vfat、MSDOS等。使用df -T命令查看磁盘空间时还可以得到文件系统的信息: #df -T 文件系统 类型 容量 已用 可用 已用% ...

    snowtools-webext:FF和Chrome系列的Web扩展,为ServiceNow开发人员提供工具

    管理标签: 列出按实例分组的打开的选项卡在已知实例上打开新选项卡在另一个实例上打开相同的对象或列表选择一种颜色填充每个实例的图标快速访问文档,API和自定义搜索查看您会话的实际当前更新集管理您的实例: ...

    MYSQL中文手册

    5.8. MySQL用户账户管理 5.8.1. MySQL用户名和密码 5.8.2. 向MySQL增加新用户账户 5.8.3. 从MySQL删除用户账户 5.8.4. 限制账户资源 5.8.5. 设置账户密码 5.8.6. 使你的密码安全 5.8.7. 使用安全连接 5.9. ...

    flask-permissions:Flask的简单权限系统

    烧瓶许可 Flask-Permissions是一个简单的Flask权限扩展,可与。 尽管这不是严格的要求,但... from flask.ext.permissions.core import Permissions实例化在Flask应用程序,SQLAlchemy数据库和当前用户的代理中传递的P

    精通LINUX设备驱动程序开发

    2.1.10 ext3-fs: mounted filesystem 19 2.1.11 init: version 2.85 booting 19 2.2 内核模式和用户模式 20 2.3 进程上下文和中断上下文 20 2.4 内核定时器 21 2.4.1 hz和jiffies 21 2.4.2 长延时 22 ...

Global site tag (gtag.js) - Google Analytics