关于Ext+Struts2的整合案例-Ext学习之路之-入门

最近项目开发,打算使用Ext作为表现层,不想让开发人员花太多的时间去书写枯燥无味的jsp标签,故打算采用Ext作为表现层的解决方案,控制层,我采用了Struts2来替代。本人对Ext的各个组件不是很熟悉,也就是最近2天看了相关的demo和Javaeye上的帖子,特整理了一个可执行的工程出来。很简单,主要是为了阐述如何实现二者的通信机制而已。如果有时间,再慢慢完善。 :wink:

其中有几个点需要说明一下:
1、采用JavaEye一位网友的建议,采用JsLoader来加载相关的资源,但这里,需要注意文件资源的路径问题,否则将出现Ext未定义等错误。我该写了JsLoader的方法,增加了getContextPath()方法到那个stripExternalRef()返回之前。
 /**
* get the application's context path
* @return {}
*/
this.getContextPath=function() {
var contextPath = document.location.pathname;
var index =contextPath.substr(1).indexOf("/");
contextPath = contextPath.substr(0,index+1);
delete index;
return contextPath;
}
// 在stripExternalRef返回前,强加这个上下文路径

/**
* Strips out any double slashes, double dots, or cross domain references.
* @param s string
*/
this.stripExternalRef=function(s){
var exprs = [/\.\.+/g,/\/\/+/g,/\\\\+/g,/\:+/g,/\'+/g,/\%+/g];

// If it's hosted, we relax the protocol related regex
exprs = [/\.\.+/g,/\\\\+/g,/\'+/g,/\%+/g];

if (_remote)

for(var i=0; i<exprs.length; i++)
{
s = s.replace(exprs[i], '');
}

return this.getContextPath()+ s;
}

以上方法,也是google上翻了好久才拿到的,习惯了google的拿来主义。

2、注意GridPanel中关于root属性,他这个属性的意思就是说,你必须指明你的Json返回的串中,网格数据对应的key,在这里我们的网格数据对应的对象是
List<Person> persons;
所以就是
reader: new Ext.data.JsonReader({
totalProperty: 'total',
root: 'persons',
successProperty :'success'
}, [
{name: 'id',mapping:'id',type:'int'},
{name: 'sex',mapping:'sex',type:'string'},
{name: 'name',mapping:'name',type:'string'},
{name: 'descn',mapping:'descn',type:'string'}
])
了,我们可以使用JsonPlugin的注释来更改json串的相关key值。

呵呵,第一次发贴,明天请假,今天熬夜把这个问题解决,明天给公司的兄弟一个交代。哈 :wink:

好了,改天对ext有更多的认识,也慢慢发上来,太晚了,儿子都睡啦。睡觉去咯。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值