将 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 问题?