Rhino: Как вернуть строку из Java в Javascript? - PullRequest
9 голосов
/ 29 октября 2010

Как мне использовать Rhino, чтобы вернуть строку из Java в Javascript, все, что я получаю, это org.mozilla.javascript.JavaNativeObject, когда я использую

var jsString = new java.lang.String("test");

внутри моего js-файла.способ сделать это?

var jsString = String(new java.lang.String("test"));

Цель состоит в том, чтобы иметь Java-метод для возврата объекта String вместо создания его на лету, как описано выше.

Ответы [ 3 ]

3 голосов
/ 12 ноября 2010

В общем, вы бы назвали Context.javaToJS, который преобразует объект Java в его ближайшее представление в Javascript.Однако для String объектов эта функция возвращает саму строку без необходимости ее переноса.Поэтому, если вы всегда возвращаете строку, вам не нужно делать ничего особенного.

2 голосов
/ 12 ноября 2010

оба будут работать, но попробуйте сначала или пройдите учебники по носорогу https://developer.mozilla.org/en/Rhino_documentation

0 голосов
/ 12 января 2018

Хотя в большинстве случаев возвращаемый тип Java String можно использовать так же, как тип JS String в коде JS, он не имеет тех же методов!

В частности, я обнаружил, что его нельзя использовать в объекте JS, передаваемом в 'stringify ()', поскольку у него нет метода toJSON ().

Единственное решение, которое я нашел, - это явно добавить "" в JS, чтобы преобразовать строку Java в строку JS. Я не нашел способа закодировать Java-метод для прямого возврата хорошей строки JS ... (так как Context.javaToJS () не конвертирует строку Java) Например:

var jstr = MyJavaObj.methodReturningAString();
JSON.stringify({ "toto":jstr});   // Fails
JSON.stringify({ "toto": ""+jstr});  // OK
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...