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