`
pjwqq
  • 浏览: 79658 次
社区版块
存档分类
最新评论

Extjs 4.2 自定义Ext.data.writer

    博客分类:
  • js
阅读更多
  学习Ext4.2的MVC有半个月了,感觉进展缓慢,一方面是资料比较少,另一方面主要还是比较懒,加上工作上暂时也没这方面需求。Ext真是个不错的Web前端框架,就凭他自成体系,把js从头到脚包装一遍花的力气,也让人赞叹(当然好不好用是另外一回事)。所谓重量级可不是吹的。
  虽然进度比较慢,还是有点小心得,记录下来。

  Ext.data.writer的类型不是json就是xml等,有时候与我的要求不符,因为有时候post到后台的我要求的不是纯json,例如我经常这么干:
@Action(value = "userAction")
public class UserAction extends BaseAction {
        private String jsonStr = null;

	public void setJsonStr(String jsonStr) {
		this.jsonStr = jsonStr;
	}
        
	public void changepassword(){
		User u = new User();
		u = JSON.parseObject(jsonStr,User.class);
                //.......
	}
}

这样在一些场合非常方便,那么这时候就不能用
        writer : {
        	type : 'json'
        }

这种方式了,因为传回数据应该是 "jsonStr={json}",这时候可以自定义writer
Ext.define('Ext.data.writer.SinglePost', {
    extend: 'Ext.data.writer.Writer',
    alternateClassName: 'Ext.data.SinglePostWriter',
    alias: 'writer.singlepost',

    writeRecords: function(request, data) {
        request.params['jsonStr'] = Ext.JSON.encode(data[0]);
        return request;
    }
});

注意,这里需要把data[0]变成json,如此就可以方便的实现自定义
自定义writer给编码提供了很大自由度(尤其是在MVC中),使用如下
Ext.define('PJ.store.UserInfo',{
	extend : 'Ext.data.Store',
	model : 'PJ.model.UserInfo',
	autoLoad : false,
	autoSync : false,

	proxy : {
		type : 'ajax',
		api : {
			read : '/sshe/userAction!userlist.action',
			//create
			update : '/sshe/userAction!changepassword.action'
			//destroy
		},
        reader: {
        	root : 'obj',
        	type: 'json',
        	successProperty: 'success'
        },
        writer : {
        	type : 'Singlepost'
        }
	}	
}); 
分享到:
评论

相关推荐

    extjs 4.2.1.883

    工具包 是最新版 4.2.1.883 extjs是相当经典的框架,extjs4在前三个版本上继续优化,采用了一些主流的设计思想,效率进一步优化,而能也会存在一些问题。

    EXTJS-4.2.1.883

    EXTJS-4.2.1.883

    ext-4.2.1.883.jsb2

    从spket IDE 官网下载。 文件名: ext-4.2.1.883.jsb2 对应版本ext-4.2.*版本。spket自动提示ExtJs4,需要ext4.2.1.jsp2文件。

    ExtJS 4.2的sdk.jsb3文件(修改后)

    请将该文件放在ext的根目录下,这样利用spket插件就会有提示了。

    extjs4.2的sdk.jsb3

    extjs4.2的sdk.jsb3文件,用于spket插件使用,放到extjs的build子目录中

    ext-4.2.1.883.zip

    extjs4.2.1.883 差不多是extjs 4.0 版本中非常靠后的版本了。在这个大版本下最稳定的版本了。

    Ext JS 4.2.1.883_前端ajax框架

    Ext JS 4.2.1.883_前端ajax框架

    ExtJs4.2下拉树(修改版)

    ExtJs4.2没有直接提供下拉树这个组件,但是有例子可以用,文件位置:ext-4.2.1.883\examples\ux\TreePicker.js 但是它有点小毛病吧:默认显示了根节点;达到最小高度时再展开节点,高度不能自动调整。 所以我做了一...

    Extjs4.2自定义ComboTree

    Extjs4.2自定义ComboTree

    Ext JS 4.2.6.1811主题classic

    Ext JS 4.2.6.1811 Release Date: October 5, 2016 Version Number: 4.2.6.1811 ext-theme-classic

    ext-4.2.1.883.rar

    extjs4x包,用于前端框架extjs的应用与开发

    ext-4.2.1.883

    ExtJS是一个Javascript库,功能强大,界面美观,可以使用Ajax, DHTML,DOM等技术开发网络应用程序。

    extjs-4.2.1.883.7z

    js框架 extjs-4.2.1.883.7z

    ext-4.2.0.663 EXTJS官方最新版7z压缩

    ext-4.2.0.663 EXTJS官方最新版7z压缩 为了上传方便,使用了7z极限压缩,解压时请使用7z,以防文件损坏

    extjs jsb文件(ext-4.2.1.883.jsb2)

    从ext官方论坛上下的。 文件名: ext-4.2.1.883.jsb2 对应版本ext-4.2.1.883

    Extjs 继承Ext.data.Store不起作用原因分析及解决

    关于这个原因有很多种,我只说下我遇到的 我这样 写Store来复用的 代码如下: DocStore = Ext.extend(Ext.data.Store,{ initComponent:function(){ this.proxy = new Ext.data.HttpProxy({url:this.url}); this....

    Extjs4.2 Grid filter Demo 表格过滤实验

    这是利用sencha cmd 生成的GridFilterDemo工程中的app和build文件夹,其余文件过大并且与主题无关,因此未包含。具体方法,请参看我的博客: 《Extjs4.2 Grid Filter Feature 表格过滤特性》

    Extjs4.2带复选框下拉树组件

    网上搜索了许久未找到...Extjs4.2 带复选框的下拉树,解决了向下勾选子节点、向上勾选父节点,正选反选获取值等问题,勾选的节点显示displayfield值直接显示在下拉文本框中。需要引用ext-all.js和ext-all-neptune.css

    ext4.2.1.883

    1、ExtJS可以用来开发RIA也即富客户端的AJAX应用,是一个用javascript写的,主要用于创建前端用户界面,是一个与后台技术无关的前端ajax框架。因此,可以把ExtJS用在.Net、Java、Php等各种开发语言开发的应用中。...

    extjs-Ext.ux.form.LovCombo下拉框

    extjs多选下拉框,Ext.ux.form.LovCombo,extjs 以修复多选下拉框火狐下取不到值的问题,火狐下div不显示背景色的问题

Global site tag (gtag.js) - Google Analytics