Zasadniczo próbuję przekazać funkcję javaScript do metody Java, aby zadzwonić do skryptu.Jak mogę przekazać funkcję javaScript do metody Java, aby działać jako wywołanie zwrotne (Rhino)?
Mogę to zrobić - w pewnym sensie - ale obiekt, który otrzymuję, to sun.org.mozilla.javascript.internal.InterpretedFunction i nie widzę sposobu, aby go wywołać.
Wszelkie pomysły?
Oto co mam do tej pory:
var someNumber = 0;
function start() {
// log is just an log4j instance added to the Bindings
log.info("started....");
someNumber = 20;
// Test is a unit test object with this method on it (taking Object as a param).
test.callFromRhino(junk);
}
function junk() {
log.info("called back " + someNumber);
}
Czy to jest aplet? Jeśli nie, to niemożliwe, ponieważ kod JavaScript jest wykonywany po stronie klienta, podczas gdy kod Java jest wykonywany po stronie serwera. W tym procesie tracisz zmienne środowiska wykonawczego. Będziesz musiał wywołać Java za pomocą żądania 'POST' lub' GET', przekazując twoje dane jako parametr żądania. – FK82
@ FK82 - Rhino to interpreter JavaScript napisany w Javie (jest zawarty w JVM Java 6 jako część skryptowego API). – McDowell
@McDowell: OP nie był określony z którego środowiska wykonawczego próbował wywołać funkcję Rhino/JavaScript. – FK82