0

我正在尝试在 Java 项目中使用 javascript 代码发送电子邮件。数据库连接工作正常,我已经测试过了。我收到错误: javax.script.ScriptException: sun.org.mozilla.javascript.internal.EvaluatorException: missing) 在第 1 行的形式参数 (#1) 之后

4

3 回答 3

2

唯一相关的信息不容易报告:最终执行的 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(invalid ID) 是错误的,该body参数从来没有使用过,encodeURIComponent应该使用(而不是escape)。

于 2014-04-11T22:09:20.280 回答
0

嗯,你的函数定义:

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

对我来说,它看起来不像是有效的 JavaScript,除此之外,您永远不会调用该函数。

伪代码,怎么做:

function sendMail(username, email) {
    var link = "jadajada" + email; // .... etc
}
sendMail("+username+","+email+");
于 2014-04-11T22:29:02.930 回答
0

不确定这是否是错字:

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

看起来你错过了你的陈述的结尾。

于 2014-04-11T22:03:27.777 回答