我在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'变量工作正常,这对我来说是有意义的。
有谁知道我在这里做错了什么?
答案 0 :(得分:1)
不,不能直接访问它。您必须使用JSP标记来实现它。类似于&lt;%= foo%&gt;。
有一个教程here。
现在我重新阅读并看到你在一个功能中这样做。使用上述应该仍然有效。但是,将值传递给函数并使JSP远离函数声明可能是更好的做法。