`

Struts的Ext增删改查应用范例

阅读更多
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>this is my first Extjs Demo...</title>
<!-- ext-all -->
<link rel="stylesheet" type="text/css" href="./extjs-3.0/resources/css/ext-all.css" mce_href="extjs-3.0/resources/css/ext-all.css" />
<!-- ext-base、ext-all、ext-lang-zh_CN-->
<mce:script type="text/javascript" src="./extjs-3.0/adapter/ext/ext-base.js" mce_src="extjs-3.0/adapter/ext/ext-base.js" charset="utf-8"></mce:script>
<mce:script type="text/javascript" src="./extjs-3.0/ext-all.js" mce_src="extjs-3.0/ext-all.js" charset="utf-8"></mce:script>
<mce:script type="text/javascript" src="./extjs-3.0/source/locale/ext-lang-zh_CN.js" mce_src="extjs-3.0/source/locale/ext-lang-zh_CN.js" charset="utf-8"></mce:script>
<mce:script type="text/javascript" src="./extjs-3.0/ext-all-debug.js" mce_src="extjs-3.0/ext-all-debug.js" charset="utf-8"></mce:script>
<mce:script type="text/javascript"><!--
Ext.onReady(function(){
Ext.BLANK_IMAGE_URL = 'extjs/resources/images/default/s.gif';
Ext.QuickTips.init();
//fields
var fields = Ext.data.Record.create([
{name: 'id', type: 'int' },
{name: 'name', type: 'string'},
{name: 'pass', type: 'string'},
{name: 'descn', type: 'string'}
]);
//model
var selectModel = new Ext.grid.CheckboxSelectionModel();
var model = new Ext.grid.ColumnModel([
new Ext.grid.RowNumberer(),
selectModel,
{header:'编号',dataIndex:'id',sortable:true},
{header:'名称',dataIndex:'name',sortable:true},
{header:'密码',dataIndex:'pass',sortable:true},
{header:'描述',dataIndex:'descn',sortable:true}
]);
//cm.defaultSortable = true;
//基于HttpProxy读取Json数据的Factory
var store = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({url:'userinfoAction.do?tag=getList',method:'GET'}),
reader: new Ext.data.JsonReader({
totalProperty: 'totalProperty',
root: 'root'
}, fields)
});
//创建工具栏组件
var toolbar = new Ext.Toolbar([
{text : 'add',iconCls:'add',handler : showAdd},
{text : 'modify',iconCls:'option',handler : showModify},
{text : 'delete',iconCls:'remove',handler : showDelete}
]);
//grid
var grid = new Ext.grid.GridPanel({
el: 'grid',
title: 'the Jsp with a JSON...',
ds: store,
cm: model,
sm: selectModel,
width:600,
height:480,
autoHeight: true,
viewConfig: {
forceFit:true
},
bbar: new Ext.PagingToolbar({
pageSize: 10,
store: store,
displayInfo: true,
displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
emptyMsg: "没有记录"
}),
tbar: toolbar
});
grid.render();//渲染表格
store.load({params:{start:0, limit:10}});
//提交表单数据
function submitForm(){
//判断当前执行的提交操作,isAdd为true表示执行新增操作,false表示执行修改操作
if(theForm.isAdd){
//新增信息
theForm.form.submit({
clientValidation:true,//进行客户端验证
waitMsg : '正在提交数据请稍后...',//提示信息
waitTitle : '提示',//标题
url : 'userinfoAction.do?tag=addObject',//请求的url地址
method:'POST',//请求方式
success:function(form,action){//加载成功的处理函数
win.hide();
//updateBookList(action.result.bookTypeId);
Ext.Msg.alert('提示','新增信息成功');
},
failure:function(form,action){//加载失败的处理函数
Ext.Msg.alert('提示','新增信息失败');
}
});
}else{
//修改信息
theForm.form.submit({
clientValidation:true,//进行客户端验证
waitMsg : '正在提交数据请稍后...',//提示信息
waitTitle : '提示',//标题
url : 'userinfoAction.do?tag=modifyObject',//请求的url地址
method:'POST',//请求方式
success:function(form,action){//加载成功的处理函数
win.hide();
//updateBookList(action.result.bookTypeId);
Ext.Msg.alert('提示','修改信息成功');
},
failure:function(form,action){//加载失败的处理函数
Ext.Msg.alert('提示','修改信息失败');
}
});
}
}
//创建新增或修改信息的form表单
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'side';//统一指定错误信息提示方式
var theForm = new Ext.FormPanel({
labelSeparator : ":",
frame:true,
border:false,
items : [
{
xtype:'textfield',
width : 200,
allowBlank : false,
blankText : '昵称不能为空',
name : 'name',
fieldLabel:'昵称'
},{
xtype:'textfield',
width : 200,
name : 'pass',
fieldLabel:'密码',
inputType:'password',
allowBlank : false,
blankText : '密码不能为空'
},{
xtype:'textarea',
width : 200,
name : 'descn',
regex:/^[\s\S]{1,50}$/,
regexText:"相关说明请不要超过50个字符",
fieldLabel:'相关说明'
},
{
xtype:'hidden',
name : 'id'
}
],
buttons:[
{
text : '提交',
handler : submitForm
},{
text : '取消',
handler : function(){
win.hide();
}
}
]
});
//创建弹出窗口
var win = new Ext.Window({
layout:'fit',
width:380,
closeAction:'hide',
height:200,
resizable : false,
shadow : true,
modal :true,
closable:true,
bodyStyle:'padding:5 5 5 5',
animCollapse:true,
items:[theForm]
});
//打开添加面板
function showAdd(){
theForm.form.reset();
theForm.isAdd = true;
win.setTitle("新增信息");
win.show();
}
//打开修改面板
function showModify(){
var theList = getObjectIdList();
var num = theList.length;
if(num > 1){
Ext.MessageBox.alert("提示","每次只能修改一条信息。")
}else if(num == 1){
theForm.isAdd = false;
win.setTitle("修改信息");
win.show();
var theId = theList[0];
loadForm(theId);
}
}
//取得所选项
function getObjectIdList(){
var recs = grid.getSelectionModel().getSelections();
var list = [];
if(recs.length == 0){
Ext.MessageBox.alert('提示','请选择要进行操作的信息 !');
}else{
for(var i = 0 ; i < recs.length ; i++){
var rec = recs[i];
list.push(rec.get('id'))
}
}
return list;
}
//加载表单数据
function loadForm(theId){
theForm.form.load({
waitMsg : '正在加载数据请稍后',//提示信息
waitTitle : '提示',//标题
url : 'userinfoAction.do?tag=getModifyObject',//请求的url地址
params : {id:theId},
method:'GET',//请求方式
success:function(form,action){//加载成功的处理函数
//Ext.Msg.alert('提示','数据加载成功');
},
failure:function(form,action){//加载失败的处理函数
Ext.Msg.alert('提示','数据加载失败');
}
});
}
//打开删除面板
function showDelete(){
var theList = getObjectIdList();
var num = theList.length;
if(num > 1){
Ext.MessageBox.alert("提示","每次只能删除一条信息。")
}else if(num == 1){
Ext.MessageBox.confirm("提示","您确定要删除所选信息吗?",function(btnId){
if(btnId == 'yes'){
var theId = theList[0];
deleteObject(theId);
}
})
}
}
//删除信息
function deleteObject(theId){
var msgTip = Ext.MessageBox.show({
title:'提示',
width : 250,
msg:'正在删除信息请稍后......'
});
Ext.Ajax.request({
url : 'userinfoAction.do?tag=deleteObject',
params : {id : theId},
method : 'POST',
success : function(response,options){
msgTip.hide();
var result = Ext.util.JSON.decode(response.responseText);
if(result.success){
//服务器端数据成功删除后,同步删除客户端列表中的数据
//var index = typeStore.find('id',theId);
//if(index != -1){
// var rec = typeStore.getAt(index)
// typeStore.remove(rec);
//}
Ext.Msg.alert('提示','删除信息成功。');
}else{
Ext.Msg.alert('提示','已包含'+result.num+'本信息不能删除!');
}
},
failure : function(response,options){
msgTip.hide();
Ext.Msg.alert('提示','删除信息请求失败!');
}
});
}
});
// --></mce:script>
</head>
<div id="grid" ></div>
</html>
?
UserAction.java
package com.extjs.web;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
public class UserAction extends DispatchAction {
//查询所有信息
public ActionForward getList(ActionMapping mapping , ActionForm form ,HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int start = 0;
int limit = 10;
StringBuffer json = new StringBuffer();
try {
if(request.getParameter("start") != null){
start = Integer.parseInt(request.getParameter("start").toString());
limit = Integer.parseInt(request.getParameter("limit").toString());
}
} catch (NumberFormatException e) {
}finally{
json.append("{totalProperty:100,root:[");
for(int i = start;i<limit+start;i++)
{
if(i < limit+start-1)
{
json.append("{'id':'"+i+"','name':'name"+i +"','pass':'pass"+i+"','descn':'descn"+i+ "'},");
}else
{
json.append("{'id':'"+i+"','name':'name"+i +"','pass':'"+i+"','descn':'descn"+i+ "'} ]}");
}
}
response.setContentType("text/json;charset=UTF-8");
response.getWriter().write(json.toString());
response.getWriter().close();
}
System.out.println("getList start: "+start+" json: "+json.toString());
return null;
}
//添加信息
public ActionForward addObject(ActionMapping mapping , ActionForm form ,HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String msg = "";
try {
if(request.getParameter("name") != null){
String name = request.getParameter("name").toString();
String pass = request.getParameter("pass").toString();
String descn = request.getParameter("descn").toString();
if(true){
msg="{success:true,data:{name:'"+name+"',pass:'"+pass+"',descn:'"+descn+"'}}";
//成功时候的返回信息
}else{
msg="{success:false,errors:{rs:'name和descn不匹配,请重新输入'}}";
//失败时候的返回信息
}
response.setContentType("text/json;charset=UTF-8");
response.getWriter().write(msg);
}
} catch (NumberFormatException e) {
}finally{
response.getWriter().close();
}
System.out.println("addObject msg: "+msg);
return null;
}
//获得修改信息
public ActionForward getModifyObject(ActionMapping mapping , ActionForm form ,HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String msg = "";
try {
if(request.getParameter("id") != null){
int id = Integer.parseInt(request.getParameter("id").toString());
if(true){
msg="{success:true,data:{id:'"+id+"',name:'name"+id+"',pass:'pass"+id+"',descn:'descn"+id+"'}}";
//成功时候的返回信息
}else{
msg="{success:false,errors:{rs:'name和descn不匹配,请重新输入'}}";
//失败时候的返回信息
}
response.setContentType("text/json;charset=UTF-8");
response.getWriter().write(msg);
}
} catch (NumberFormatException e) {
}finally{
response.getWriter().close();
}
System.out.println("getModifyObject msg: "+msg);
return null;
}
//修改信息
public ActionForward modifyObject(ActionMapping mapping , ActionForm form ,HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String msg = "";
try {
if(request.getParameter("id") != null){
int id = Integer.parseInt(request.getParameter("id").toString());
String name = request.getParameter("name").toString();
String pass = request.getParameter("pass").toString();
String descn = request.getParameter("descn").toString();
if(true){
msg="{success:true,data:{id:'"+id+"',name:'"+name+"',pass:'"+pass+"',descn:'"+descn+"'}}";
//成功时候的返回信息
}else{
msg="{success:false,errors:{rs:'name和descn不匹配,请重新输入'}}";
//失败时候的返回信息
}
response.setContentType("text/json;charset=UTF-8");
response.getWriter().write(msg);
}
} catch (NumberFormatException e) {
}finally{
response.getWriter().close();
}
System.out.println("modifyObject msg: "+msg);
return null;
}
//删除信息
public ActionForward deleteObject(ActionMapping mapping , ActionForm form ,HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String msg = "";
try {
if(request.getParameter("id") != null){
int id = Integer.parseInt(request.getParameter("id").toString());
if(id != 0){
msg="{success:true,data:{id:'"+id+"'}}";
//成功时候的返回信息
}else{
msg="{success:false,errors:{rs:'id不匹配,请重新输入'}}";
//失败时候的返回信息
}
response.setContentType("text/json;charset=UTF-8");
response.getWriter().write(msg);
}
} catch (NumberFormatException e) {
}finally{
response.getWriter().close();
}
System.out.println("deleteObject msg: "+msg);
return null;
}
}
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    基于Struts的Ext增删改查应用范例

    **基于Struts的Ext增删改查应用范例详解** 在Web开发中,Struts框架与ExtJS库的结合常用于构建高效的用户界面和后台数据交互。本应用范例是针对初学者的一个宝贵资源,它提供了清晰的注释和全面的功能,使开发者...

    struts简易增删改查

    在"struts简易增删改查"这个主题中,我们将探讨如何使用Struts框架来实现一个基本的数据操作功能,包括添加(Add)、删除(Delete)、修改(Update)和查询(Search)数据。这些功能是任何数据库驱动的应用程序的...

    struts2增删改查案例

    这个例子是我从网上下载下来的,因为公司要进行struts2的框架更改,经理让我做一个例子.我从网上down下之后发现这个例子有很多是错误的.所以更改了一下午的时间.但是对于会的人,也许几分钟就搞定了.这个项目是struts2+...

    struts2增删改查

    综上所述,"struts2增删改查"项目涵盖了Struts2框架的基础应用,数据库操作,以及前端交互等多个方面,是学习和实践Java Web开发的一个经典实例。通过这个项目,开发者能够深入理解Struts2的工作原理,提升数据库...

    struts1.2(增删改查源码)

    这个压缩包文件“struts1.2(增删改查源码)”显然是提供了一个完整的示例,展示了如何使用Struts1.2框架进行基本的数据操作,包括添加(Add)、删除(Delete)、修改(Update)和查询(Query),这些都是任何数据库...

    struts2增删改查,struts2分页查询

    在探讨Struts2框架下的增删改查以及...以上解析涵盖了Struts2框架中增删改查及分页查询的主要实现方式,通过JSP页面、Action类和配置文件三者的协作,我们可以高效地构建出具有动态数据展示和交互能力的Web应用程序。

    hibernate+struts实现jsp增删改查分页

    hibernate+struts实现jsp增删改查分页! hibernate实现对数据库的操作,struts实现对表单的操作! 实现了分页功能! (注:本本项目中文会出现乱码,我还没有解决!附有数据库文件!)

    Hibernate+struts 增删改查

    在IT行业中,开发Web应用程序时,常常需要对数据库进行数据操作,这通常涉及到"增删改查"(CRUD)的基本功能。"Hibernate+Struts"是一个常见的Java Web开发框架组合,它们一起提供了强大的后端数据处理能力。下面将...

    struts hibernate增删改查

    基于Struts 2+Hibernate实现员工管理系统。一个单位有多个部门,每个部门有多名员工,每个员工只属于一个部门。基于该要求,实现员工和部门的管理(包括添加、查询、删除和修改等操作),并且要实现部门与员工之间的...

    Struts2增删改查

    在“Struts2增删改查”这个主题中,我们将深入探讨如何利用Struts2来实现数据库中的基本操作:添加(Add)、删除(Delete)、修改(Update)和查询(Query)。 首先,了解Struts2的基本架构至关重要。Struts2框架...

    Struts2增删改查.zip

    本实践项目"Struts2的增删改查.zip"是针对Struts2框架进行CRUD(Create,Read,Update,Delete)操作的完整实例,旨在帮助开发者深入理解并掌握Struts2的核心特性和实际应用。 在Struts2中,CRUD操作是数据库操作的...

    Struts1 增删改查+分页

    在本项目"Struts1 增删改查+分页"中,我们将深入探讨如何利用Struts1实现对数据的基本操作以及分页显示。 1. **Struts1基础**: - **Action类**:是Struts1的核心,用于接收用户请求并执行业务逻辑。每个Action类...

    Struts2 增删改查实例

    这个“Struts2 增删改查实例”是一个非常适合初学者的实践项目,它将帮助你理解如何在实际应用中使用Struts2来实现基本的数据操作功能。 首先,Struts2的核心组件包括Action类、配置文件(struts.xml)、拦截器...

    Struts2增删改查的实现

    Struts2实现的增删改查,可运行。数据库mysql,单表,自建就可以啦。代码层逻辑清晰:DAOImpl,DAO,Service,ServiceImpl,Action分层清晰,有简单的国际化和输入校验功能。

    Struts2 JDBC 增删改查

    在这个"Struts2 JDBC 增删改查"项目中,我们将探讨如何结合这两者来构建一个简单的数据管理应用。 首先,让我们深入理解Struts2的核心概念。Struts2框架提供了动作(Action)和结果(Result)的概念,动作负责处理...

    Struts+Hibernate增删改查

    因项目还在开发,所以本人只拿出一块单独的struts+hibernate增、删、改、查来演示,具体的一些包一看就知道; 项目直接在MyEclipse6.0运行,环境是里面自带的,用过的人都知道。本人测试没有问题。 具体的页面...

    sping+hibernate+struts2增删改查

    在IT行业中,Spring、Hibernate和Struts2是三个非常重要的框架,它们构成了经典的Java Web开发栈,被广泛用于实现Web应用程序的"增删改查"(CRUD)操作。在这个项目中,"北大青鸟"可能是一个教育机构,它可能在教授...

    EXTJS4+STRUTS2+JAVA增删改查

    在这个"EXTJS4+STRUTS2+JAVA增删改查"的例子中,我们将深入探讨这三个技术如何协同工作,实现数据的动态管理。 EXTJS4是一个强大的JavaScript库,主要用于创建桌面级的Web应用程序。它提供了丰富的组件库,如表格、...

Global site tag (gtag.js) - Google Analytics