Extjs 4.2 自定义Ext.data.writer

本文分享了作者在学习ExtJS 4.2框架过程中的一些心得,特别是在需要自定义POST数据格式的情况下如何实现自定义writer的方法。通过具体代码示例展示了如何定义并使用SinglePost writer来满足特定的需求。
学习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'
}
}
});
## 软件功能详细介绍 1. **文本片段管理**:可以添加、编辑、删除常用文本片段,方便快速调用 2. **分组管理**:支持创建多个分组,不同类型的文本片段可以分类存储 3. **热键绑定**:为每个文本片段绑定自定义热键,实现一键粘贴 4. **窗口置顶**:支持窗口置顶功能,方便在其他应用程序上直接使用 5. **自动隐藏**:可以设置自动隐藏,减少桌面占用空间 6. **数据持久化**:所有配置和文本片段会自动保存,下次启动时自动加载 ## 软件使用技巧说明 1. **快速添加文本**:在文本输入框中输入内容后,点击"添加内容"按钮即可快速添加 2. **批量管理**:可以同时编辑多个文本片段,提高管理效率 3. **热键冲突处理**:如果设置的热键与系统或其他软件冲突,会自动提示 4. **分组切换**:使用分组按钮可以快速切换不同类别的文本片段 5. **文本格式化**:支持在文本片段中使用换行符和制表符等格式 ## 软件操作方法指南 1. **启动软件**:双击"大飞哥软件自习室——快捷粘贴工具.exe"文件即可启动 2. **添加文本片段**: - 在主界面的文本输入框中输入要保存的内容 - 点击"添加内容"按钮 - 在弹出的对话框中设置热键和分组 - 点击"确定"保存 3. **使用热键粘贴**: - 确保软件处于运行状态 - 在需要粘贴的位置按下设置的热键 - 文本片段会自动粘贴到当前位置 4. **编辑文本片段**: - 选中要编辑的文本片段 - 点击"编辑"按钮 - 修改内容或热键设置 - 点击"确定"保存修改 5. **删除文本片段**: - 选中要删除的文本片段 - 点击"删除"按钮 - 在确认对话框中点击"确定"即可删除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值