一尘不染

如何在JavaScript中使用scriptlet

jsp

有人可以测试此示例并共享结果吗?
http://timothypowell.net/blog/?p=23
当我这样做时:

var myVar = '<% request.getContextPath(); %>';
alert(myVar);

我得到: '<% request.getContextPath(); %>'.

删除’<%request.getContextPath();中的单引号 %>’;; 给出语法错误。如何在js函数中使用scrptlet或expresion?

编辑:此链接的解释对我有帮助:http :
//www.codingforums.com/showthread.php?t=172082


阅读 446

收藏
2020-06-08

共1个答案

一尘不染

听起来您是将JSP代码放在JavaScript页面中,或者至少是在非JSP页面中。脚本只能包含在JSP页面中(通常配置为* .jsp)。

所提供的语句如果由JSP编译器处理,将导致myVar等于”,因为您正在使用的<%…%>的scriptlet格式在标记之间执行Java代码,但不会返回结果。

因此,要使用此标记,您需要手动将一个值写入请求输出流。要获得所需的功能,您需要执行以下操作:

  make sure your code is in a JSP page
  use var myVar = '<%= request.getContextPath() %>'; (note the equals sign)

综上所述,在大多数情况下,scriptlet被视为不良做法。在大多数情况下,您应该使用JSTL表达式和自定义标签。

2020-06-08