js文件中的Spring app名称

时间:2013-11-29 20:55:28

标签: javascript ajax spring spring-mvc

我有一个调用spring控制器并接收json的js文件,如下所示:

$.get('/app-web/submission/list/Get/', 
                {   statusCode:_statusCode,
                    startingIndex:_startingIndex,
                    pageSize:_pageSize
                }, _callBack ).fail(_errorCallback);

现在'app-web'是应用程序的名称(war文件的名称)。所以,显然我想用变量替换它。我正在考虑创建一个全局js变量并通过服务器更改值。为此,我需要回答以下问题:

  1. 如何在Spring中获取应用名称?
  2. 如何通过服务器编写js代码?
  3. 如果你有一个优雅的解决方案,那就太棒了!感谢。

2 个答案:

答案 0 :(得分:0)

一个简单的技巧是在包含所有静态JS文件之前在JSP中定义一个全局变量:

<script>
    var CONTEXT = "${pageContext.request.contextPath}";
</script>
<script src="..."></script>

并且,在静态JS文件中,要使用此全局变量:

$.get(CONTEXT + '/submission/list/Get/', ...);

答案 1 :(得分:0)

其实你在解决错误的问题;而不是查找相对于服务器根目录(“/”)的资源,您可以使用相对URL引用所有资源,即:

$.get('./submission/list/Get/'(*),
            {   statusCode:_statusCode,
                startingIndex:_startingIndex,
                pageSize:_pageSize
            }, _callBack ).fail(_errorCallback);

这意味着该位置在/submission/list/Get relative 中被查找到当前位置(如果碰巧在不同的地方开始,您可能需要浏览层次结构)。使用相对URI使客户端代码更具可移植性,并且更少依赖于容器的配置和服务器端模板语言。

(*)'submission/list/Get/'是等效的,但我相信从./开始更好地传达意图