最看到Exjs4很多改进的相关信息,产生用用看的想法。所以就着手4.x方面的学习。在学习的过程当中发现4.x 相对以前版本存在很多的差别。baidu或谷歌一下有一大堆讲解。 参考一些资料后着手4.x的学习与开发。本人是参照官方MVC例子着手学习的。开发一个基于java后台的增、删、改、查的例子。在做增加、更改、查询时都没有出现乱码情况。以下是增加与更改的ext代码:
Ext.define('W.gzgl.views.common.MenuAddPanel',{
extend : 'Ext.window.Window',
layout : 'fit',
resizable : true,
width : 400,
height : 300,
title : '菜单增加',
closeAction : 'close',
initComponent : function(){
this.items = this.buildItems(this);
this.callParent();
},
buildItems : function(form){
return Ext.create('Ext.form.Panel', {
bodyPadding : 5,
border : false,
waitMsgTarget : true,
fieldDefaults : {
labelAlign : 'right',
labelWidth : 85,
msgTarget : 'side'
},
bodyStyle : "border-bottom: 1px solid #8db2e3;",
items: [{
xtype : 'fieldset',
title : '菜单增加',
defaultType : 'textfield',
defaults : {
width: 280
},
items : [{
fieldLabel : '菜单序号',
emptyText : '请输入...',
allowBlank : false,
name : 'id'
},{
fieldLabel : '菜单名',
emptyText : '请输入...',
allowBlank : false,
name : 'name'
}, {
fieldLabel : '加载组件名',
emptyText : '请输入...',
name : 'componetName'
}, {
fieldLabel : '样式',
name : 'iconCls'
}, /*{
fieldLabel : '父菜单',
name : 'parentId'
}*/
Ext.create('W.gzgl.componet.common.select.MenuSelect',{
fieldLabel : '父菜单',
name : 'parentId'
})
,{
xtype : 'radiogroup',
fieldLabel : '是否叶子',
defaults : {
name : 'leaf'
},
items : [{
//checked : true,
inputValue : 'true',
boxLabel : '是'
}, {
inputValue : 'false',
boxLabel : '否'
}]
},{
xtype : 'radiogroup',
fieldLabel : '是否启用',
defaults : {
name: 'visible'
},
items : [{
//checked : true,
inputValue : 'true',
boxLabel : '启用'
}, {
inputValue : 'false',
boxLabel : '不启用'
}]
}
]
}],
buttons: [{
text : '重 置',
handler : function(){
/* formPanel.getForm().load({
url : 'xml-form-data.xml',
waitMsg : 'Loading...'
});*/
this.up('form').getForm().reset();
}
}, {
text : '保 存',
disabled : true,
formBind : true,
iconCls : 'icon-delete',
handler : function(){
var actionUrl = form.actionType === 'create' ? 'manager/menuCreate.hs' : 'manager/menuUpdate.hs';
this.up('form').getForm().submit({
method : 'post',
url : actionUrl,
submitEmptyText : false,
waitMsg : '数据保存中...',
success : function(response){
Ext.getCmp(form.gridName).getStore().load();
form.close();
},
failure : function(){
}
});
}
}]
});
}
});
以下是数据源的定义:
Ext.define('W.gzgl.stores.common.MenuStore', {
extend : 'Ext.data.Store',
pageSize : 20,
requires : ['W.gzgl.models.common.MenuModel'],
model : 'W.gzgl.models.common.MenuModel',
autoDestroy: true,
autoLoad : true,
proxy : {
type : 'ajax',
url : 'manager/menuList.hs',
reader : {
type : 'json',
root : 'rows',
idProperty : 'name'
}
}
});
从代码上分析是没有存在什么问题。工程或环境的编码也都为"utf-8"。
也从网络找了一些解决方法。
一、在load提交时对字符串进行decode处理。
{name : encodeURIComponent(value)}
然后在后端进行反编码
java.net.URLDecoder.decode(name, "utf-8");
根据这一做法确实可以解决这一问题。但是综合比较后个人认认为这不是一个很好的解决方法。这一做法就是每一个参数都需要重复上述步骤。比较烦。在对from提交与store提交对比后发现load提交默认为“get”.参考相应说明后。在数据源定义中更改method为"post".即可解决store带中文提交乱码问题。
更改后的代码:
Ext.define('W.gzgl.stores.common.MenuStore', {
extend : 'Ext.data.Store',
pageSize : 20,
requires : ['W.gzgl.models.common.MenuModel'],
model : 'W.gzgl.models.common.MenuModel',
autoDestroy: true,
autoLoad : true,
proxy : {
type : 'ajax',
url : 'manager/menuList.hs',
actionMethods: {
read: 'POST'
},
reader : {
type : 'json',
root : 'rows',
idProperty : 'name'
}
}
});
分享到:
相关推荐
### extjs前后台交互参数出现中文乱码问题的解决方法 #### 问题背景与原因分析 在使用MyEclipse开发工具进行Web应用开发时,尤其是采用ExtJS框架结合Ajax技术进行前后端数据交互的过程中,可能会遇到一个常见的...
除了上述操作外,`store.load()`方法还支持其他参数,如`params`、`callback`、`scope`和`add`等,用于更精细地控制数据加载行为。 - **params**:可以传递自定义的请求参数,例如分页参数`start`和`limit`。 - **...
通过以上内容的介绍,我们可以了解到在Extjs4中如何利用`form.load()`方法实现从后台加载JSON数据,并将其映射到表单字段中显示的过程。这不仅有助于提高开发效率,还能增强应用程序的灵活性。希望本文能够帮助您更...
这个“Extjs4后台框架”可能指的是一个特定的、与ExtJS4集成的后端解决方案,用于支持前端应用的数据交互和管理。让我们深入探讨一下ExtJS4及其相关的后台开发概念。 首先,ExtJS4提供了丰富的组件库,包括表格、...
本篇文章将深入探讨如何利用`Store`来实现`Toolbar`的功能,即所谓的`Storebar`,这在EXTJS开发中是一种高效且灵活的数据驱动UI设计方法。 首先,我们要理解`Store`的概念。`Store`是EXTJS中的一个关键组件,它负责...
在ExtJS中,我们可以使用`Ext.Ajax.request`或FormPanel的`submit`方法来发送POST请求。例如: ```javascript Ext.Ajax.request({ url: 'post.php', method: 'POST', params: { data: Ext.encode({key1: 'value...
根据提供的文件信息,本文将详细解析ExtJS 4中如何处理不同类型的Store及与之相关的数据操作、模型定义以及前端展示等内容。 ### ExtJS 4中的Store与数据管理 #### Store概念简介 在ExtJS 4中,Store是用于存储...
ExtJS4是一个强大的JavaScript库,专门用于构建富客户端的Web应用程序。...总的来说,"Extjs4+MVC+struts2后台管理系统"结合了现代前端技术与成熟的后端框架,提供了一种高效、可扩展的解决方案来构建企业级的Web应用。
个人《Extjs4学习指南》电子文档过程中整理的Myeclipse工程,有以下修改:1、数据库改为Mysql;2、前四章后台改为servlet;3、最后一章后台改为SSH架构。 使用说明:1、BeginExtjs4目录为前四章的例子代码;2、SSH_...
ExtJS3 升级到 ExtJS4 方案 ExtJS3 升级到 ExtJS4 需要修改大量代码,主要是因为 ExtJS4 配备了一类新的系统,不向后兼容。在 ExtJS 3 里生成表的几个框架组件,ExtJS4 大多生成 div,这使得 CSS classes 将会失败...
EXTJS4自学手册——EXT数据结构组件(store) 三、Extjs布局 EXTJS4自学手册——EXT容器布局(Auto,Anchor,Absolute,Hbox) EXTJS4自学手册——EXT容器布局(Vbox,Accordion,Table,Column) EXTJS4自学手册——EXT...
在ExtJS 4中,STOREMENU 是一种特定的功能,它将数据存储(Store)与菜单(Menu)相结合,提供了一种动态创建菜单项的方法,这些菜单项可以根据存储的数据进行更新。这种功能在需要根据用户权限或实时数据动态展示...
EXTJS4中文文档详细介绍了每个组件的配置选项、事件、方法以及使用示例,对于初学者来说是一份宝贵的参考资料。通过学习这份文档,开发者可以掌握EXTJS4的基本用法和高级技巧,从而高效地开发出功能丰富的Web应用。...
ExtJs 4 API 中文
4. **Model和Store**:在ExtJS中,Model定义了数据的结构和行为,Store则负责管理一组Model实例,提供数据加载、排序、过滤等功能。开发者可以配置Store的proxy属性,指定与后台交互的方式,比如设置为`Ext.data....
JQuery AJAX提交中文乱码的解决方案 Jquery css函数用法 JQuery中getJSON的使用方法 Jquery中显示隐藏的实现代码分析 JQuery全选功能的实现 JQuery特效——下拉菜单 JQuery系列教程之XPath选择符 JQuery系列教程之...
项目进行前端框架升级——extJS 4升级至extJS6.6所遇的一些问题及相对应的解决方案建议
EXTJS提供了一种强大的方式来实现客户端验证,这可以帮助开发者在用户提交数据前检查输入的有效性,从而减少服务器端的压力并提高用户体验。本文将深入探讨EXTJS中的表单验证,特别是针对特殊字符的验证。 EXTJS...
同时,Controller层则负责处理用户交互和数据更新,触发Store的load或sync方法来与后台交互。 "webapp"可能是一个Web应用程序的根目录,包含了HTML、CSS和JavaScript文件,以及可能的配置文件。在这里,我们通常会...
这篇“ExtJS笔记——Grid实现后台分页”探讨了如何在ExtJS的Grid组件中实现高效的后台分页功能。 后台分页是一种常见的数据处理策略,特别是在大数据量的情况下,它将数据分批加载,避免一次性加载所有记录导致的...