秀一下我多天才做出来的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中,组件是构建用户界面的基础,包括表格(Grid)、面板(Panel)、窗口(Window)、菜单(Menu)...
"EXT实例综合"是一个关于JavaScript库EXT的专题学习资料,主要涵盖了EXT 2.0.2版本中的ASP.NET(.aspx)环境下的应用。EXT是一个强大的JavaScript框架,专为构建富客户端Web应用程序而设计,提供了丰富的组件和数据...
"EXT后台经典实例"指的是使用EXT与后端服务器进行交互的典型应用场景,通常涉及到Ajax通信、数据模型、Store和Grid等核心概念。 在EXT中,数据通常是通过Store来管理的。Store连接到后端服务器,负责加载、保存和...
Ext实例 Ext教程主要介绍了Ext JS的多个实例,涵盖了从基础的表格控件到复杂交互的弹出窗口。Ext JS是基于JavaScript的框架,广泛用于开发富互联网应用程序(RIA),支持多种浏览器,并对旧版IE有良好支持。Ext JS...
EXT酒店管理实例是一种基于Web的管理系统,主要用于提升酒店的运营效率和服务质量。EXT是一个JavaScript框架,它提供了丰富的用户界面组件和强大的数据管理功能,使得开发人员可以构建出交互性强、性能优秀的应用...
EXT实例通常涉及到一系列操作步骤,包括页面布局、窗口创建以及表格的使用。 **页面布局**是EXT的核心功能之一,它提供了多种布局模式来适应不同设计需求。常见的布局有: 1. **Accordion布局**:这种布局方式使得...
EXTJS 提供了一套完整的组件模型、数据绑定、布局管理、表单控件等特性,使得开发者能够创建功能丰富的、交互性强的用户界面。在给定的标题和描述中,“EXT 实例 示例 实例 示例”暗示我们将探讨EXTJS 的具体实例和...
EXTGRID是EXT JS库中的一个...综上所述,EXTGRID实例展示了如何利用EXT JS库创建一个功能强大且用户友好的数据管理界面,通过深入研究这个实例,开发者可以学习到EXT GRID的各种特性和用法,提升自己的前端开发技能。
在EXTJS中,Ext.AJAX和Ext.FormPanel是两个核心组件,它们分别用于异步与服务器进行数据交互和构建用户界面表单。本文将详细介绍如何使用这两个组件构建一个完整的登录案例,包括与MySQL数据库的交互。 **1. Ext....
用Ext实现的用户管理界面,完成了部分。 包括用户列表; 用树展开的用户分组; 添加用户; 地址导航等。 预览: http://hi.baidu.com/lhj_5460/blog/item/03e6b3028b2fd9e708fa9387.html
EXT JS实例通常包括一系列预定义的组件、布局、数据绑定机制和丰富的用户界面控件,这些都极大地简化了开发复杂的Web应用。 在"EXT_JS实例,官方实例"这个压缩包中,你将找到EXT JS 3.2.1版本的官方示例。EXT JS ...
在"Ext JS实例 学生信息管理系统"这个项目中,我们将深入探讨如何利用Ext JS来构建一个实际的应用系统。 首先,`students.sql`文件是数据库脚本,通常用于创建数据库表结构和初始数据。在这个例子中,它可能包含了...
标题中的"DONET下EXT实例"指的是一个使用EXTJS开发的.NET应用程序示例。 这个实例是针对初学者设计的,使用了Visual Studio 2008作为开发工具,并且基于EXTJS 2.0版本。EXTJS 2.0是一个早期的版本,但它包含了许多...
从上下文判断,这里的“EXT实例”很可能是指一种特定的软件工具或数据集,可供用户免费下载和使用。不过,由于缺乏具体细节,我们只能基于常见的可能性进行推测。 #### 1.2 可能的应用场景 - **软件开发**:如果...
"EXT后台管理"是一个基于ExtJS前端框架,结合PHP后端语言和MySQL数据库构建的小型应用程序系统。..."EXT后台管理"系统展示了如何将这些技术融合在一起,为用户提供一个功能完备、操作便捷的后台管理平台。
EXT实例与JSON的结合使用,通常涉及到以下几个关键步骤: 1. **创建数据模型(Model)**:EXT允许定义数据模型来描述数据结构,这有助于保持数据的一致性。例如,你可以创建一个名为`Person`的模型,包含`name`和`...
在"EXT js 实例 学生成绩管理"这个项目中,我们将探讨如何使用 EXT JS 来实现一个简单的学生成绩管理系统。 首先,我们来看一下系统的主要组成部分: 1. **数据模型(Model)**:在 EXT JS 中,数据模型用于定义和...
在"Java AJAX ext实例"中,我们主要探讨以下几个关键知识点: 1. **EXT.js框架**:EXT.js 提供了一整套高度可定制的组件,如窗口、面板、表格、表单等,使得开发者可以快速构建复杂的用户界面。它的组件化设计允许...
EXT JS 提供了丰富的组件、布局管理、数据绑定、拖放功能等,使得开发者可以构建出美观且功能强大的用户界面。EXT JS 的实例集合通常包含各种组件的示例代码,帮助开发者更好地理解和运用EXT JS。 在"EXT 前台 实例...
学习 Ext 3.0 时,首先要掌握其核心组件和布局管理,然后理解数据模型和数据绑定,最后通过实践加深对事件系统和 MVC 模式的理解。此外,熟练运用 JSON 和 AJAX 进行前后端通信也是必不可少的技能。通过这个资源包,...