JSP中的Rhino变量

时间:2011-02-26 01:09:23

标签: java javascript jsp rhino

我在jsp中有这个:

<%
    Scriptable scope = Context.enter().initStandardObjects();
    scope.put( "foo", scope,  Context.toObject( "foo", scope ) );
%>

<script type="text/javascript">
   function doSomething() {
      // this works fine, so I can tell Rhino is working to some extent
      var now = new Packages.java.util.Date();
      alert(now);

      // but this comes back as an undefined variable - why?
      alert(foo);
   }
</script>

我完全感到困惑 - 我认为通过将String值(“foo”)放在默认范围内,我可以在javascript环境中看到它,但是,我不能。如果不是因为'now'变量工作正常,这对我来说是有意义的。

有谁知道我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

不,不能直接访问它。您必须使用JSP标记来实现它。类似于&lt;%= foo%&gt;。

有一个教程here

现在我重新阅读并看到你在一个功能中这样做。使用上述应该仍然有效。但是,将值传递给函数并使JSP远离函数声明可能是更好的做法。