紧急求助!!ExtJS Xtemplate的问题

八一 2012-12-21 03:59:33
我想在我的ExtJS项目里加入对soap协议的支持,于是我复制了官网上的proxy和reader,在自定义proxy的时候发现一个问题。官网上是有Xtemplate类来构造SOAP请求的XML的,但是我调试的时候发现没有成功构造Xml,整个构造过程只完成了一点。下面我贴一下代码,请大家看一下该怎么改

下面的envelopeTpl 是用来构造soap envelope的
readBodyTpl是用来构造Read操作的soap body的,
writeBodyTpl是用来构造create,delete,update操作的soap body的

他调试的时候发现构造出来的xmlData只有这一点点:
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

soap body的构造没有执行,请问为什么?怎么改?


来个人我给分!
...全文
166 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yibey 2012-12-24
  • 打赏
  • 举报
回复
恭喜下楼主了
八一 2012-12-24
  • 打赏
  • 举报
回复
找到问题了,是因为我用的是4.1.1的SDK,但是我下载的Proxy和Reader是4.1.3的,我用4.1.3的XTempalteCompiler就行了
八一 2012-12-24
  • 打赏
  • 举报
回复
没人帮下我吗?
八一 2012-12-21
  • 打赏
  • 举报
回复
Ext.define('Ext.data.soap.Proxy', {
    extend: 'Ext.data.proxy.Ajax',
    alias: 'proxy.soap',

    requires: [
        'Ext.data.soap.Reader'
    ],
    operationParam: 'op',
reader: 'soap',
envelopeTpl: [
        '<?xml version="1.0" encoding="utf-8" ?>',
        '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">',
            '{[values.bodyTpl.apply(values)]}',
        '</soap:Envelope>'
    ],
readBodyTpl: [
        '<soap:Body>',
            '<{operation} xmlns="{targetNamespace}">',
                '<tpl foreach="params">',
                    '<{$}>{.}</{$}>',
                '</tpl>',
            '</{operation}>',
        '</soap:Body>'
    ],
writeBodyTpl: [
        '<soap:Body>',
            '<{operation} xmlns="{targetNamespace}">',
                '<tpl for="records">',
                    '{% var recordName=values.modelName.split(".").pop(); %}',
                    '<{[recordName]}>',
                        '<tpl for="fields">',
                            '<{name}>{[parent.get(values.name)]}</{name}>',
                        '</tpl>',
                    '</{[recordName]}>',
                '</tpl>',
            '</{operation}>',
        '</soap:Body>'
    ],
constructor: function(config) {
        this.callParent(arguments);
        this.api = config.api || {};
        this.soapAction = config.soapAction || {};
    },

    doRequest: function(operation, callback, scope) {
        var me = this,
            XTemplate = Ext.XTemplate,
            action = operation.action,
            soapOperation = me.api[action],
            params = Ext.applyIf(operation.params || {}, me.extraParams || {}),
            bodyTplName = action + 'BodyTpl',
            xmlData = XTemplate.getTpl(me, 'envelopeTpl').apply({
                operation: soapOperation,
                targetNamespace: me.targetNamespace,
                params: params,
                records: operation.records,
                bodyTpl: XTemplate.getTpl(me, me[bodyTplName] ? bodyTplName : 'writeBodyTpl')
            }),
            request = new Ext.data.Request({
                url: me.url + '?' + me.operationParam + '=' + soapOperation,
                method: 'POST',
                action: action,
                operation: operation,
                xmlData: xmlData,
                headers: Ext.apply({
                    SOAPAction: me.soapAction[action]
                }, me.headers),
                timeout: me.timeout,
                scope: me,
                disableCaching: false // explicitly set it to false, ServerProxy handles caching
            });

        request.callback = request.callback = function(response,opts){
                	console.log(action);
                	console.log(soapOperation);
                	console.log(params); 
                	console.log(bodyTplName);
                	console.log(xmlData);
                	console.log(me[bodyTplName]);
                };//me.createRequestCallback(request, operation, callback, scope);

        Ext.Ajax.request(request);
                
        return request;
    }
});
内容概要:本文详细介绍了一种基于MATLAB实现的改进前推回代法,用于高效求解低压配电网的潮流计算问题。该方法针对传统前推回代法在处理放射状或弱环状配电网络时存在的收敛性差、计算效率低等缺陷,提出了多项优化策略,包括节点分层排序、支路编号优化以及合理的电压初始值设定,从而显著提升了算法的数值稳定性与运算速度。文中系统阐述了改进算法的数学模型构建过程与核心原理,并提供了完整的MATLAB代码实现流程。通过标准算例的仿真测试,验证了该改进方法在计算精度和收敛性能方面的优越性,可为低压配电网的规划、运行状态分析、电压调控及分布式电源接入能力评估等实际工程问题提供可靠的技术支撑。; 适合人群:具备电力系统分析基础知识和MATLAB编程能力的高校研究生、从事电力系统相关研究的科研人员,以及负责配电网规划、运行与优化的工程技术人员。; 使用场景及目标:①实现低压配电网的稳态潮流计算与仿真分析,获取各节点电压和支路功率分布;②支撑含分布式光伏、储能等设备接入的配电网承载力评估与电压越限风险分析;③用于研究电压调控策略、无功补偿配置等优化问题;④作为电力系统专业课程的教学案例,帮助学生深入理解潮流计算的基本原理与数值算法的编程实现。; 阅读建议:建议读者结合文中的理论推导与提供的MATLAB代码进行上机实践,重点关注节点分层逻辑和迭代收敛判据的编程实现细节,通过调试和修改算例参数来加深理解,并可尝试将该方法拓展应用于三相不平衡潮流或动态潮流计算等更复杂的场景。

87,987

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧