秀一下我多天才做出来的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实现的用户管理界面,完成了部分。 包括用户列表; 用树展开的用户分组; 添加用户; 地址导航等。 预览: http://hi.baidu.com/lhj_5460/blog/item/03e6b3028b2fd9e708fa9387.html
ext+dwr+spring实例 用到的技术包括Spring,ext,dwr等,数据库是mysql5.0。包含简单的三个Case:“人事管理”,“机构管理”,“用户管理”,虽然不多,但是目的达到了(学习了这三种技术)
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源码分析与开发实例宝典】随书附的源代码,实例颇多,包括绘制流程图,制作QQ通讯软件,用户登录注册、文件上传,图片放大缩小等等,企业级管理平台等等,由于上传大小受限,EXT3.0库请另行下载
包括JS基础、Ext的DOM和CSS封装、内置对象的扩展、事件系统、Ajax和Direct、数据和缓存架构、面向对象和继承、UI组件、布局管理、模板、特效、图表和报表、Ext4新特性介绍等内容。文中穿插大量的实例和基础理论解析...
a)完整的事务、事件管理、用户、单位、角色、权限管理设计,能快速帮助企业在不同的项目中快速完成用户、单位、角色、权限的分配,迅速投入到项目本身的业务系统开发中。 b)完整的字典管理功能,能方便的对业务...
我们一般会使用遵循MVC设计模式的Struts来规范程序结构,使用优秀的ORM组件Hibernate来简化数据库访问操作,使用系统黏合剂Spring来提高开发效率,使用异步访问的Ajax来提高用户体验。而今天我们要做的一个demo是一...
包括JS基础、Ext的DOM和CSS封装、内置对象的扩展、事件系统、Ajax和Direct、数据和缓存架构、面向对象和继承、UI组件、布局管理、模板、特效、图表和报表、Ext4新特性介绍等内容。文中穿插大量的实例和基础理论解析...
4、通过实现角色管理、用户管理两个基础的功能模块,演示了Viewport、Container、Panel、TreePanel、Grid、Window、Form等常用组件的用法,以及border、column、form、fit、hbox等常用布局方式; 5、通过自定义一个...
《精通JS脚本之ExtJS框架》附有配套光盘,提供了书中实例的源代码和视频教学文件。此外,读者还可以通过访问itzcn网站来获得即时在线帮助。 《精通JS脚本之ExtJS框架》可以作为Web开发的自学参考书,也可以作为...
在系统关机前使用 shutdown命令,系统管理员会通知所有登录的用户系统将要关闭,并且login指令会被冻结,即新的用户不能再登录。 halt 1.作用 halt命令的作用是关闭系统,它的使用权限是超级用户。 2.格式 halt...
《精通JS脚本之ExtJS框架》附有配套光盘,提供了书中实例的源代码和视频教学文件。此外,读者还可以通过访问itzcn网站来获得即时在线帮助。 《精通JS脚本之ExtJS框架》可以作为Web开发的自学参考书,也可以作为...
特征: 管理和编辑所有用户脚本单击两次启用和禁用脚本在不同的Chrome实例之间轻松同步脚本通过URL从userscripts.org搜索脚本(启用了TamperFire) 在其他标签,功能和特性下,支持以下功能: 完全不安全的Window...
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. 备份与...
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支持的文件系统非常多,包括JFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、vfat、MSDOS等。使用df -T命令查看磁盘空间时还可以得到文件系统的信息: #df -T 文件系统 类型 容量 已用 可用 已用% ...
管理标签: 列出按实例分组的打开的选项卡在已知实例上打开新选项卡在另一个实例上打开相同的对象或列表选择一种颜色填充每个实例的图标快速访问文档,API和自定义搜索查看您会话的实际当前更新集管理您的实例: ...
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权限扩展,可与。 尽管这不是严格的要求,但... from flask.ext.permissions.core import Permissions实例化在Flask应用程序,SQLAlchemy数据库和当前用户的代理中传递的P
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 ...