首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

Struts2跟ExtJs之间的数据传递详解

2012-10-29 
Struts2和ExtJs之间的数据传递详解最近在学习Extjs,发现在Struts2中支持json数据,现在共享出来,大家一起学

Struts2和ExtJs之间的数据传递详解
最近在学习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"   })   // 页脚显示分页 }); // 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] }); }); 

热点排行