3

我使用 Spring Mvc,我想在javascript 文件中使用 EL 变量(例如${pageContext.request.contextPath}) 。.js

这可能吗?如果有怎么办?

4

2 回答 2

2

实现此目的的另一种常见方法是在标签内的调用 JSP 页面中声明您的 JSTL 值(例如 contextPath),方法<script>是将它们添加到全局 JS 对象、变量或初始化函数。然后,您可以在由原始 JSP 页面调用的外部 JS 文件中引用这些值。

请参阅:此答案“在 JSP 标记中使用 JavaScript”

虽然它有点粗糙,但如果您使用诸如JAWR 之类的工具,它可能是唯一的选择。

于 2012-10-26T10:30:08.423 回答
1

您可以制作一个包含 JS 的模板,并将 contextPath 作为插入模板的变量传递。

@RequestMapping(value="path/to/handler", method = RequestMethod.GET, produces ="text/javascript")
public ModelAndView getJs(HttpServletRequest request) {
  String contextPath = request.getContextPath();
  return new ModelAndView("/path/to/js/", "contextPath", contextPath);
}

但是为什么你需要这样做呢?上下文路径在客户端也可用

编辑:

为此,您可能必须设置一个ViewResolver以便处理模板(如果您还没有)。

在页面中,您只需像往常一样包含脚本:

<script type="text/javascript" src="path/to/handler" />
于 2012-10-26T08:22:50.577 回答