0

我想使用 requirejs 的函数在外部 js 文件中获取通过Servlet使用发送的值:HttpSessiondefine

define(function(){
    return {
        /*Get values from the java session*/
        gisuniqkey:<%=session.getAttribute('gisuniqkey')%>,
        scenario:<%=session.getAttribute('scenario')%>,
        operation:<%=session.getAttribute('operation')%>,
        objkey:<%=session.getAttribute('objkey')%>
    }
});

是否有可能做到这一点?执行此操作时我应该包含任何依赖项?Eclipse 告诉我执行此操作时出错。

错误消息只是将其称为语法错误:

 Uncaught SyntaxError: Unexpected token < java_to_script.js:3
 Uncaught TypeError: Cannot read property 'gisuniqkey' of undefined     
 gmaps_createScenario.js:15

我所关心的是我没有在我的jsp中使用全局变量......并且它应该与require.js一起工作,如果它可以成为一个可重用的模块,那就太好了。

4

1 回答 1

0

您不能在静态.js文件中使用 JSP。

.jsp您可以在输出 JavaScript 文件的文件中使用 JSP 。

输出一个application/javascript内容类型,然后按照.jsp您的意愿使用 JSP 指令在文件中正常写入您的 JS。

请注意,由于 JavaScript 文件将与 HTML 文件分开请求,因此您将无法读取用于从 JavaScript 文件中的 JSP 指令请求 HTML 文件的查询字符串(尽管您可以通过会话,或将它们添加到src元素中<script>)。


然而,根据经验,最好还是坚持使用静态 JS 文件并将动态生成的 JS 作为内联<script>包含在 HTML 文档中(尽管将此类 JS 保持在最低限度 - 刚好足以存储您需要的数据)。这使得排序缓存规则更简单。

于 2014-03-29T08:40:38.223 回答