使用Ext JS Model加载方法在参数名称中使用句点

时间:2012-08-28 14:24:10

标签: spring extjs

将Ext-JS 4.1与Spring 3.1控制器一起使用。

我正在尝试使用load()方法从Spring Controller中检索一个对象。我从文本字段中读取一个字符串并将其发送到load方法。字符串字段将包含完全限定的服务器名称,例如“company.server.com”。发生的事情是,Spring控制器中的值是“company.server”,换句话说,它会丢弃“.com”。我在最后添加了一段时间,比如“company.server.com”。然后它恰当地作为“company.server.com”进入。似乎有某种令牌化正在进行中。我用逗号(,)来看看会发生什么。使用逗号,字符串按预期方式进入。由于某种原因,句点(。)导致了问题。

以下是模型:

Ext.define('AB.model.Server', {
    extend: 'Ext.data.Model',
    fields: [
        {name:'serverName', type:'String'},
        {name:'memory', type:'String'},
        {name:'cpus', type:'int'}
    ],

    proxy {
        type: 'rest',
        url: '/web/user/'
    }
});

以下是来自表单的片段,它会调用load():

Ext.define('AB.view.Form', {
    extend: 'Ext.form.Panel',

    ....

    ,{
        xtype: 'button',
        text: 'Retrieve Information',
        handler: function() {
           Ext.ModelManager.getModel('AB.model.User').load(Ext.getCmp('serverName').getValue(), {
               success: function(user) {
                   alert("Success");
        }

    ....
}

使用Firebug我将此视为被调用的URL:

http://myServer/web/user/company.server.com?_dc=13461612333647?id=company.server.com

因此URL具有正确的服务器名称,但在Spring Controller端,我的参数值为“company.server”。

当我直接在网络浏览器中直接输入以下网址时:

http://myServer/web/user/company.server.com/

它可以正常使用Spring Controller中的参数“company.server.com”。

这是一个EXT JS问题吗? EXT JS到Spring有问题吗?我不认为这是一个单独的Spring问题,因为浏览器中的URL直接正常工作。

更新:

当我将以下网址直接放入网络浏览器时:

http://myServer/web/user/company.server.com

它的行为与EXT JS Rest调用相同。请注意,没有结束斜杠(/)。那么也许这是一个Spring问题?或者也许是web.xml问题?

0 个答案:

没有答案