我的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>
我完全困惑了 - 我认为通过将字符串值(“foo”)放入默认范围中,我可以在 javascript 上下文中看到它,但是,我不能。如果不是因为“now”变量工作正常,这对我来说是有意义的。
有人知道我在这里做错了什么吗?
最佳答案
不,无法直接访问它。您必须使用 JSP 标记才能获得它。类似于 <%= foo %>.
有一个教程 here .
现在我重新阅读并看到您正在函数中执行此操作。使用上面的应该仍然有效。然而,将值传递到函数中并将 JSP 保留在函数声明之外可能是更好的做法。
关于java - JSP 中的 Rhino 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5124378/