我正在尝试将我的Grails应用程序与extJS整合在一起。 下面是我的edit.gsp文件中的代码。
<%@ page import =“tune.Music”%>
<script type="text/javascript">
var ds = new Ext.data.Store({
autoLoad: true,
proxy: new Ext.data.HttpProxy({
url: 'http://localhost:8080/tune/music/listData'}),
reader: new Ext.data.JsonReader({
results: 'total',
root:'items',
id:'id'
},
[
{name: 'playerId'},
{name: 'playerPrice'}
]
)
});
var cm = new Ext.grid.ColumnModel([
{header: "Player Id", width: 70, sortable:true, dataIndex: 'playerId'},
{header: "Player Price", width: 90, dataIndex: 'playerPrice'}
]);
//cm.defaultSortable = true;
// create the grid
var grid = new Ext.grid.GridPanel({
ds: ds,
cm: cm,
renderTo:'grid-example',
width:1300,
height:300
});
</script>
</head>
<body>
<div class="body">
<!--<g:javascript library="examples"/>-->
<!-- EXAMPLES -->
<h1>Ext Grid</h1>
<div id="grid-example"></div>
</div>
</body>
我的控制器操作:
def list = { }
def listData = {def session = sessionFactory.getCurrentSession() def result = session.createSQLQuery(“从w.music中选择player_id,其中player_id =('530AS')”)。list(); def tuneInstanceList = new ArrayList() result.each {def tune = new Tune() tune.playerId =它 tune.playerPrice =“100” tuneInstanceList.add(tune)} def listResult = [total:tunInstanceList.size(),items:tunInstanceList] 将listResult渲染为JSON; }
以上代码适合我。
但是,这适用于我的开发环境。 如果我在另一个环境中运行它,它不起作用,因为我在这里硬编码的URL viz url:'http:// localhost:8080 / tune / music / listData'。
其中一个选项是使用gsparse。但是,如果可能的话,我想在这里提一个相对的urlPath。 如何替换我的urlPath,以便即使在其他环境中也可以调用正确的操作。
谢谢!
答案 0 :(得分:1)
将Http Proxy网址替换为
url:'/ tune / music / list Data'并且有效。
谢谢!