Вызов функции JavaScript в Java

Я пытаюсь отправить электронное письмо с использованием кода JavaScript в проекте Java. Подключение к базе данных работает нормально, я уже проверял. Я получил ошибку: javax.script.ScriptException: sun.org.mozilla.javascript.internal.EvaluatorException: отсутствует) после формальных параметров (#1) в строке номер 1

3 ответа

Единственная информация о релевантности не сообщается: окончательная строка JavaScript выполнена. Обязательно посмотрите соответствующие данные при отладке. После проверки финальной строки станет понятно, почему ее некорректно и тривиально "исправить".

Подсказка: это будет выглядеть примерно так function sendMail(userblah, foo@bar.qux) { .., который действительно является недействительным JavaScript.

Проблема и решение должны быть очевидны из этого - использовать фиксированные параметры (имена переменных) в объявлении функции и предоставлять аргументы (значения) через вызов invokeFunction.


Решение:

// The following parameter names are JAVASCRIPT variable names.
String script = "function sendMail(username, email, body) { ..";

// And pass correct arguments (values), in order. The variables used
// here are JAVA variables, and align by-position with the JS parameters.
inv.invokeFunction("sendMail", username, email, "EMAIL SENT!!!!");

В дополнение getElementById (неверный идентификатор) неверно, body параметр никогда не используется, и encodeURIComponent следует использовать (вместо escape).

Не уверен, что это опечатка или нет:

    result = request.executeQuery("SELECT user.login, user.email "
                    + "FROM user " + );

Похоже, вам не хватает конца вашего заявления.

Хм, ваше определение функции:

function sendMail("username","email") {...}

для меня это не похоже на правильный JavaScript, кроме того, вы никогда не вызываете функцию.

Псевдокод, как это сделать:

function sendMail(username, email) {
    var link = "jadajada" + email; // .... etc
}
sendMail("+username+","+email+");
Другие вопросы по тегам