我想使用requirejs'Servlet
函数在外部js文件中使用HttpSession
获取define
发送的值:
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一起使用,如果它可以成为一个可重用的模块,那将是非常出色的。
答案 0 :(得分:0)
您不能在静态.js
文件中使用JSP。
您可以在输出JavaScript文件的.jsp
文件中使用JSP。
输出application/javascript
内容类型,然后使用您希望的JSP指令在.jsp
文件中正常编写JS。
请注意,由于JavaScript文件将单独请求HTML文件,因此您将无法读取用于从JavaScript文件中的JSP指令请求HTML文件的查询字符串(尽管您可以通过)它们通过会话,或将它们添加到src
元素的<script>
。
然而,作为经验法则,通常最好坚持使用静态JS文件,并在HTML文档中包含动态生成的JS作为内联<script>
(尽管将这样的JS保持在最低限度 - 足以存储你需要的数据)。这使得排序缓存规则更加简单。