Вызов функции 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+");