0

将 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”。

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

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

它与 Spring Controller 中的参数“company.server.com”一起正常工作。

这是一个 EXT JS 问题吗?EXT JS to Spring有问题吗?我不认为这只是一个 Spring 问题,因为直接在浏览器中的 URL 可以正常工作。

更新:

当我将以下 URL 直接放在我的网络浏览器中时:

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

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

4

0 回答 0