- 浏览: 821837 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (488)
- struts1 (4)
- spring (13)
- extjs (36)
- mysql (3)
- sqlserver (2)
- oracle (37)
- 杂谈 (11)
- 面试相关 (35)
- Java基础知识总结 (5)
- Java重要知识点 线程和io流知识点 (6)
- 服务器相关 (1)
- 生活 (1)
- jsp (7)
- servlet (2)
- junit (3)
- struts2 (9)
- 开发必备 (4)
- 使用开发工具总结的知识 (4)
- ibatis (12)
- ajax (2)
- dwr (2)
- jquery (1)
- 设计模式 (4)
- Lucene的学习 (5)
- 经验总结 (19)
- mysql全文搜索相关 (7)
- hibernate (33)
- Sphinx (1)
- log4j的总结 (1)
- 敏捷开发 (9)
- 持续集成 (15)
- UML使用总结 (1)
- Scrum (1)
- OO(面向对象编程) (1)
- struts1和struts2总结 (1)
- 数据库加密 (1)
- 多线程和Socket编程 (6)
- PowerDesigner (2)
- 权限相关 (1)
- ant应用总结 (4)
- 面试必知知识点总结 (6)
- io流与nio流总结 面试相关 (1)
- 敏捷管理工具的使用 (7)
- hsqldb相关 (1)
- svn源码相关 (2)
- debug调试技巧总结 (1)
- hibernate和ibatis对比相关 (6)
- eclipse mylyn 插件的使用总结 (2)
- fisheye使用总结 (2)
- java泛型总结 (1)
- ssh整合总结 (10)
- SpringSide的学习总结 (1)
- JPA学习总结 (2)
- RoR 总结 (2)
- 模型驱动 总结 (1)
- Oracle SQL优化技巧 (4)
- 数据库相关资料 (1)
- oracle练习相关 (4)
- PowerDesigner 使用总结 (2)
- Struts实现国际化相关 (2)
- 权限框架 Spring Security (1)
- freemarker使用总结 (1)
- jsp servlet总结相关 (3)
- Java NIO总结 (1)
- 自己学习必须 (3)
- 蝴蝶容器相关 (2)
- eclipse插件的使用 (1)
- myeclipse的使用 (1)
- flex相关 (1)
- javaeye重生后总结的知识点 (2)
- 公司学习总结 (3)
- JAXB 相关 (1)
- ECSide (1)
- EdoJs 企业ajax框架 (1)
- RSA加密算法 (1)
- jbpm相关 (1)
- JMF原理 (1)
- MyEclipse使用总结 (1)
- Funsion Charts 相关总结 (3)
- 常用知识2011 (2)
- Flex与Java整合 (1)
- IBM WebSphere相关 (1)
- jQuery使用技巧 (2)
- 2011年面试相关知识点总结 (2)
- sqlserver开发相关 (8)
- eclipse 打jar相关 (2)
- Oracle/Mysql/SqlServer比较 (1)
- WebService Axis1.4开发相关 (4)
- 进制数的转换 总结 (1)
- WebService Axis2.0开发相关 (0)
- iteye Struts2 Spring Hibernate整合相关 (3)
- iteye osgi资料相关总结 (1)
- iteye ifos相关相关 (1)
- iteye 国际化相关 (1)
- iteye Hibernate缓存机制 (4)
- iteye Struts2 总结 (1)
- iteye Struts标签总结 (0)
- iteye web配置文件大全 (6)
- iteye Efs 框架总结 (1)
- iteye sql优化 (2)
- iteye 大数据量高并发的数据库优化 (1)
- iteye 开发相关 (1)
- iteye s1sh 和 s2sh整合中的问题以及解决 (1)
- iteye s1sh整合实例 (1)
- iteye s2sh整合实例 (1)
- iteye 面试相关 基础篇 (1)
- iteye Android相关 (1)
- iteye 面试相关 Web篇 (1)
- iteye Sql Server相关 (0)
- iteye struts1与struts2比较 (1)
- iteye jquery 和Struts2 (0)
- iteye struts2与其他插件整合 (0)
- iteye jquery 开发相关 (1)
- iteye eclipse结合spket(Ext,Jquery)开发相关 (0)
- iteye myeclipse 使用技巧相关 (0)
- iteye Memcached 缓存系统相关 (0)
- iteye 常用软件相关 (0)
- iteye 最新技术预览 AjaxSwing (0)
- iteye struts上传下载相关 (0)
- iteye 新技术相关 (0)
- test (0)
- iteye 开发Java游戏相关 (0)
- iteye Java反编译 (0)
- iteye XML解析相关 (0)
- iteye 压缩ZIP相关 (0)
- iteye 面试相关 (0)
- iteye Android开发相关 (4)
- csdn (0)
- e-inoc (0)
- iteye http错误码对应说明 (0)
- iteye 面试扩展知识点 (0)
- iteye oracle面试相关 存储过程,触发器,游标等 (0)
- iteye english study (0)
- iteye starflow工作流引擎 (0)
- iteye IBM WebSphere Application Server Toolkit使用相关 (0)
- iteye spring3 (0)
- iteye mybatis (0)
- iteye js技巧总结 (0)
- iteye SEO优化相关 (2)
- iteye QUI网页界面集成框架 (1)
- iteye AjaxAnywhere (1)
- iteye Nutz相关 (1)
- iteye ibatis技巧 (0)
- iteye dwz (0)
- 128个ajax/javascript框架 (0)
- iteye 2012 Java Swing教程 (1)
- iteye 码头集装箱相关 (1)
- iteye swing (2)
- 兼职工作 (0)
- 2012 新总结的面试相关知识点 常用知识点 (1)
- 淘宝网店相关 (0)
- oracle 常用函数 2012新总结 (1)
- 我的时尚潮流屋 (0)
- 2012 年 面试新总结知识 (1)
- 技巧 (1)
- 2013总结 (1)
- 2015工作相关 (3)
- springmvc (5)
- EasyPR-Java (1)
- java (2)
- editplus 4.0 注册码 (1)
- android (1)
- oracle连接数据库相关 (1)
- 编程资料总结 (2)
- 20160808 (1)
- visio 2013 (1)
最新评论
-
drew926:
泛型的类型参数可以有多个?这是java哪个版本支持的?
java泛型总结 -
listenan:
赞!非常感谢。
Scrum总结 -
cwscwj:
写的很深刻,谢谢,看了一遍,过段时间打算再看一遍。
Scrum总结 -
hwedwin:
w
Struts 2中的OGNL\EL的使用总结 -
lanni2460:
不错 很好 支持……
sqlserver三个驱动包下载
最近在学习Extjs,发现在Struts2中支持json数据,现在共享出来,大家一起学习 Struts.xml文件:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <!-- 设置字符编码为UTF-8 --> <constant name="struts.i18n.encoding" value="UTF-8"></constant> <!-- 设置上传文件方式为jakarta --> <constant name="struts.multipart.parser" value="jakarta"></constant> <!-- 设置上传文件最大字节为:2097152 --> <constant name="struts.multipart.maxSize" value="2097152"></constant> <!-- 提交时的后缀名,如XXXX.action --> <constant name="struts.action.extension" value="action"></constant> <!-- 设置项目为开发模式 --> <constant name="struts.devMode" value="true"></constant> <!-- 资源文件若修改,则自动加载 --> <constant name="struts.i18n.reload" value="true"></constant> <!-- 主题 --> <constant name="struts.ui.theme" value="simple"></constant> <!-- 配置文件若修改,则自动加载 --> <constant name="struts.configuration.xml.reload" value="true"></constant> <!-- Spring 自动装配 --> <constant name="struts.objectFactory" value="spring"></constant> <!-- Spring配置文件若修改则 自动加载 --> <constant name="struts.objectFactory.spring.autoWire" value="type"></constant> <!-- 全局的国际化资源文件,在类型转换错误时,需要转换的信息内容在errorMassage.prop文件中定义 --> <constant name="struts.custom.i18n.resources" value="massage"></constant> <!-- Struts拦截相应的请求后分发给不同的模块来处理 --> <package name="strutspackage" extends="json-default"> <action name="yinyue" class="com.yxps.action.YinyueAction"> <result type="json"></result> </action> <action name="syslb" class="com.yxps.action.SysLbAction"> <result type="json"></result> </action> </package> </struts> YinyueAction.java package com.yxps.action; import java.util.List; import com.googlecode.jsonplugin.annotations.JSON; import com.yxps.entity.Yinyue; import com.yxps.service.IYinyueService; /** * 音乐业务逻辑类 * @author Administrator * */ public class YinyueAction extends BaseCRUDAction { private Yinyue yinyue; public Yinyue getYinyue() { return yinyue; } public void setYinyue(Yinyue yinyue) { this.yinyue = yinyue; } public Integer getStart() { return start; } public void setStart(Integer start) { this.start = start; } public Integer getLimit() { return limit; } public void setLimit(Integer limit) { this.limit = limit; } public Integer getTotal() { return total; } public void setTotal(Integer total) { this.total = total; } // 当前第几页 private Integer start = 0; // 每页多少条记录 private Integer limit = 5; // 总记录数 private Integer total = 0; private List<Yinyue> list; @JSON(name = "list") public List<Yinyue> getList() { return list; } public void setList(List<Yinyue> list) { this.list = list; } public void setYinyueService(IYinyueService yinyueService) { this.yinyueService = yinyueService; } private IYinyueService yinyueService; @Override public String doAdd() { // TODO Auto-generated method stub return null; } @Override public String doDelete() { // TODO Auto-generated method stub return null; } /** * 分页查询音乐: * 参数:start:第几页、 * limit:每页显示数量 */ @Override public String doList() { // TODO Auto-generated method stub //设置总数 this.total=yinyueService.getAllYinyue().size(); //查询当前页的音乐 this.list=yinyueService.findYinyueByPage(this.start,this.limit); return this.SUCCESS; } @Override public String doUdate() { // TODO Auto-generated method stub return null; } } 数据访问层在此就不写了。接下来看看js Ext.onReady(function() { Ext.BLANK_IMAGE_URL = 'extjs/resources/images/default/s.gif'; Ext.QuickTips.init(); Ext.form.Field.prototype.msgTarget = 'side';//设置控件的错误信息的显示位置 /* 定义选择按钮 */ var sm = new Ext.grid.CheckboxSelectionModel(); // CheckBox选择列 var btn_test_yinyue=new Ext.Button({ text:'添加', dataIndex:'st', iconCls : 'icon-add', handler : function() { window_add_yinyue.show(); } }); /* 定义列 */ var cm = new Ext.grid.ColumnModel([ new Ext.grid.RowNumberer(), // 行号列 sm, { header : '编号', dataIndex : 'id' }, { header : '音乐类别', dataIndex : 'sysLb.lbmc' }, //自定义renderer,即显示的样式,可以加html代码,来显示图片等。 { header : '音乐名称', dataIndex : 'yymc' }, { header : '试听', dataIndex : 'yylj' },{ header:'歌手', dataIndex:'gsm' },{ header:'专辑', dataIndex:'zjm' } ]); /* 定义数据源 */ var ds = new Ext.data.Store({ autoLoad : false, proxy : new Ext.data.HttpProxy({ url : 'yinyue.action?action=doList' }),// 调用的动作 reader : new Ext.data.JsonReader({ // 记录总数参数名:名称需要跟action中对应 totalProperty : 'total', // 查询出来的list集合:名称需要跟action中对应 root : 'list', successProperty : 'success' }, [{ name : 'id', mapping : 'id', type : 'int' }, { name : 'sysLb.lbmc', mapping : 'sysLb.lbmc', type : 'string' }, { name : 'yymc', mapping : 'yymc', type : 'string' }, { name : 'yylj', mapping : 'yylj', type : 'string' },{name:'gsm', mapping:'gsm', type:'string' },{name:'zjm',mapping:'zjm',type:'string'} // 列的映射 ]) }); /*工具栏中的控件*/ //添加按钮 var btn_add_yinyue=new Ext.Button({ text:'添加', iconCls : 'icon-add', handler : function() { window_add_yinyue.show(); } }); //查询按钮 var btn_search_yinyue = new Ext.Button({ text : '查询' //iconCls : 'icon-search' //handler : searchYinyue }); //编辑按钮 var btn_edit_yinyue=new Ext.Button({ text:'编辑' }); //查询文本框 var text_search_yinyue = new Ext.form.TextField({ name : 'textSearchBook', width : 200, emptyText : '多条件可用逗号或者空格隔开!' }); var btn_del_yinyue=new Ext.Button({ text:'删除' //iconCls:'icon-del' //handler:delYinyue }); var searchYinyue = function() { ds.baseParams.conditions = text_search_yinyue.getValue(); ds.load({params : {start : 0,limit : 20} }); } /* 定义DataGrid:显示数据 */ var grid = new Ext.grid.GridPanel({ ds : ds, // 数据源 sm : sm, // 选择按钮 cm : cm, // 列 autoWidth : true, autoHeight : true, // 工具栏按钮 tbar : [btn_add_yinyue, '-',btn_edit_yinyue, '-', btn_del_yinyue,'-',text_search_yinyue,'-',btn_search_yinyue], // 状态栏显示分页信息 bbar : new Ext.PagingToolbar({ store : ds,// 数据源 pageSize : 20, // 每页显示数量 displayInfo : true, displayMsg : '显示第 {0} 条到 {1} 条记录,一共 {2} 条', emptyMsg : "没有记录" }) // 页脚显示分页 }); // el:指定html元素用于显示grid grid.render('grid3');// 渲染表格 ds.load({ // 加载数据 params : { start : 0, limit : 20 } });// 备注:limit必须和bbar中的pageSize相同 /*音乐类别下拉框数据源*/ var ds_syslb_select = new Ext.data.Store({ url : 'syslb.action?action=doList', reader : new Ext.data.JsonReader({ root : 'list' }, [{name : 'id',type : 'int'}, {name : 'lbmc',type : 'string'} ]) }); /*添加音乐FormPanel*/ var yinyueForm=new Ext.FormPanel({ [url='yinyue.action?action=doAdd]url:'yinyue.action?action=doAdd'[/url], labelAlign : 'right', labelWidth : 70, bodyStyle : 'padding:5px', border : false, fileUpload : true, baseCls : 'x-plain', items : [{ layout : 'column', border : false, baseCls : 'x-plain', items : [{ columnWidth : .5, layout : 'form', baseCls : 'x-plain', border : false, defaultType : 'textfield', defaults : {anchor : '93%'}, items : [ { xtype : 'combo', fieldLabel : '所属分类', blankText:'请选择所属分类!', id : 'id', hiddenName : 'yinyue.syslb.id', valueField : 'id', displayField : 'lbmc', mode : 'remote', store : ds_syslb_select, selectOnFocus : true, editable : false, triggerAction : 'all', loadingText : '加载中...' this.ownerCt.ownerCt.ownerCt.form.findField('book.categoryName').setValue(record.data.categoryName); // } },{ fieldLabel : '音乐名称', name : 'yinyue.yymc',maxLength : 50,allowBlank : false,blankText:'音乐名不能为空!'}, { fieldLabel : '音乐路径', name : 'yinyue.yylj',maxLength : 250,allowBlank : false,blankText:'音乐路径不能为空!'}, { fieldLabel : '歌手', name : 'yinyue.gsm',maxLength : 50,allowBlank : false,blankText:'歌手名不能为空!'}] },{ columnWidth : .5, layout : 'form', border : false, baseCls : 'x-plain', defaultType : 'textfield', defaults : {anchor : '93%'}, items : [{fieldLabel : '专辑', name : 'yinyue.zjm',maxLength : 50}, { fieldLabel : '发行时间',name : 'yinyue.fxsj',maxLength : 50}, {fieldLabel : '语种',name : 'yinyue.yz', maxLength : 50}, {fieldLabel : '唱片公司',name : 'yinyue.cpgs', maxLength : 50}] }] }], buttonAlign : 'center', minButtonWidth : 60, buttons : [{ text : '添加', handler : function(btn) { if(this.url != ""){ if (yinyueForm.getForm().isValid()) { btn.disable(); var bnfield = yinyueForm.getForm().findField('yinyue.yymc'); yinyueForm.getForm().submit({ waitTitle : '请稍候', waitMsg : '正在提交表单数据,请稍候...', success : function(form, action) { var store = grid.getStore(); //提交代码.... Ext.Msg.show({ title : '提示', msg : '[ ' + bnfield.getValue() + ' ] 添加成功!!', buttons : Ext.MessageBox.OK, icon : Ext.Msg.INFO }); bnfield.reset(); btn.enable(); }, failure : function(form, action) { Ext.Msg.show({ title : '错误提示', msg : action.result.contentTypeIsValid ? '操作失败' : '操作失败,文件类型不正确!', buttons : Ext.Msg.OK, fn : function() {bnfield.focus(true);btn.enable();}, icon : Ext.Msg.ERROR }); } }); } } } }, { text : '重置', handler : function() {this.ownerCt.form.reset();} }, { text : '取消', handler : function() {this.ownerCt.ownerCt.hide();} }] }) /*添加音乐窗口*/ var window_add_yinyue = new Ext.Window({ title : '添加音乐', width : 600, resizable : false, autoHeight : true, modal : true, closeAction : 'hide', listeners : { 'hide' : function() { this.findById('book.bookName').ownerCt.ownerCt.ownerCt.form.reset(); } }, items : [yinyueForm] }); });
发表评论
-
MVC模式的好处
2010-09-07 20:52 3345MVC模式的好处 MVC是三个单词的缩写,分别为: 模型( ... -
开启mysql远程功能方法
2010-09-04 14:06 858开启mysql远程功能方法 进入mysql,创建一个新用户xu ... -
解决phpmyadmin 1800秒超时链接失效问题
2010-08-28 17:54 1640解决phpmyadmin 1800秒超时链接失效问题 如果要 ... -
mysql不允许远程用户访问主机服务器 1130
2010-08-28 17:33 4071mysql不允许远程用户访问主机服务器 1130 安装完之后 ... -
eclipse 如何将普通的项目编程动态的Web项目
2010-08-28 07:54 2442eclipse 如何将普通的项目编程动态的Web项目 以本人 ... -
eclipse中如何将项目转成dynamic web project
2010-08-27 23:20 1674eclipse中如何将项目转成 ... -
ExtJs + Struts2 + JSON 程序总结
2010-08-27 08:40 1307ExtJs + Struts2 + JSON 程序总结 ... -
Struts2与Ext JS数据表格GridPanel之间的数据传递
2010-08-23 08:20 1847本帖介绍如何通过struts ... -
RA layer request failed
2010-08-22 23:03 3422RA layer request failed 一日, ... -
关于ExtJS错误“例外被抛出且未被接住”
2010-08-21 20:30 4825关于ExtJS错误“例外被抛出且未被接住” 原因就是使用了 ... -
Http错误码说明
2010-08-21 19:44 1201Http错误码说明 HTTP常见错误代码列表汇总及解决方案 ... -
Failed to create the Java Virtual Machine
2010-08-21 08:20 1247由于项目里面用eclipse,今天从eclipse官网下载了一 ... -
JavaScript在IE和Firefox(火狐)的不兼容问题解决
2010-08-20 20:47 10171.兼容firefox的 outerHTML,FF中没有out ... -
FireFox与IE中CSS兼容技术集绵整理
2010-08-20 20:39 15731.css在不同浏览器下显示效果不同 firefox和IE对 ... -
svn版本好不显示的解决办法
2010-08-19 10:36 1119eclipse 中使用 svn 插件,原本正常,未作任何更改 ... -
数据库如何处理多对多的关系
2010-08-18 20:22 1682数据库设计多对多关系 ... -
教你如何解决oracle卸载不干净的问题
2010-08-18 17:20 2603方法一:oracle卸载不干净的解决办法 先前安装的是10.1 ... -
jsp页面放到WEB-INF 跟webroot的区别
2010-08-15 22:45 1667JSP存放在 WEB-INF 跟webroot的区别 ...
相关推荐
### Struts2与ExtJS集成实现文件的上传、下载与删除功能详解 #### 一、项目背景与技术栈概述 本案例旨在通过Struts2框架与ExtJS前端库的结合来实现文件的批量上传、下载以及删除功能。适用于对Struts2与ExtJS有...
ExtJS和Struts2是两种在Web开发领域广泛使用的开源技术。ExtJS是一个JavaScript库,主要用于构建用户界面,尤其适用于创建复杂的、数据驱动的Web应用程序。而Struts2则是一个基于MVC(Model-View-Controller)设计...
ExtJS Tree + JSON + Struts2 示例源代码详解 在Web开发中,构建交互式的用户界面是关键。ExtJS是一个强大的JavaScript库,尤其擅长创建桌面级的Web应用。本示例将详细介绍如何结合ExtJS的Tree组件、JSON数据格式...
《基于Struts2+Hibernate3.3+Spring2.5.6+ExtJS3.2的图书管理系统详解》 在当今信息化社会,图书管理系统的构建是图书馆自动化、网络化的重要一环。本系统采用了一套经典的Java技术栈,即Struts2作为MVC框架、...
EXTJS图书管理系统是一款基于Web的高效、易用的图书管理应用,它结合了Struts2、Spring、iBatis和EXTJS2.2等技术,构建在SQLServer2000数据库之上。下面将详细阐述这个系统的核心组件及其作用。 1. **Struts2(json-...
Struts2负责接收用户请求并调用业务逻辑,然后通过Spring将控制权传递给服务层,服务层处理业务逻辑并利用Hibernate与数据库交互。Spring的AOP(面向切面编程)特性可以方便地进行事务管理和权限控制,确保数据的...
ExtJS + SSH 构建Web应用的增删改查功能详解 在Web开发领域,ExtJS和SSH(Spring、Struts、Hibernate)是两种常见的技术框架。ExtJS是一款强大的JavaScript库,用于构建富客户端的用户界面,而SSH则是一个Java企业...
《基于ExtJS、DWR、Hibernate和Struts的进销存管理系统详解》 在现代企业信息化建设中,进销存管理系统的应用至关重要,它能够有效整合企业的采购、销售和库存等核心业务流程,提高运营效率。本文将详细介绍一个...
**Struts2**作为MVC框架,主要负责处理HTTP请求,提供控制器功能,以及数据传递和控制流程。它使用Action和ActionForm概念,通过配置ActionMapping将用户请求映射到相应的业务逻辑。Struts2还支持多种视图技术,如...
在本项目中,Struts2可能被用来处理用户请求,将数据传递到后端,并将响应呈现给前端。 然而,描述中提到的ExtJs是一个JavaScript库,专门用于构建富客户端应用。它提供了大量的组件和布局,可以创建复杂的、数据...
例如,EXT负责展示用户界面并处理用户的交互事件,而SSH则在后台处理业务逻辑和数据操作。这种结合可以创建出一个既美观又安全的Web应用,用户可以在前端进行各种操作,如填写表单、查看数据,而这些操作都会通过SSH...
- **JSON-Lib的应用**:使用JSON-Lib处理客户端与服务器之间传递的数据格式,提高了数据交换的效率。 #### 五、结论 综上所述,选择正确的Web开发框架组合对于项目的成功至关重要。通过综合考虑Struts、Spring、...
Socket分为流式套接字(SOCK_STREAM,如TCP)和数据报套接字(SOCK_DGRAM,如UDP)两种主要类型。 #### 12. AJAX的工作原理 Asynchronous JavaScript and XML(AJAX)是一种在无需重新加载整个网页的情况下更新...
Model-Driven Action则更适用于复杂场景,通过模型对象来传递数据。 **2. ActionContext (Action上下文)** - **介绍**:ActionContext是Action执行过程中所需的各种信息的容器,如Request、Response、Session等。 -...