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