我试图在Java项目中使用javascript代码发送电子邮件。数据库连接工作正常,我已经测试过了。我收到了错误: 在第1行的正式参数(#1)之后 javax.script.ScriptException:sun.org.mozilla.javascript.internal.EvaluatorException:missing)
答案 0 :(得分:2)
唯一的相关信息不易报告: final 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
(无效ID)错误,永远不会使用body
参数,应使用encodeURIComponent
(而不是escape
)。< / p>
答案 1 :(得分:0)
不确定这是否是拼写错误:
result = request.executeQuery("SELECT user.login, user.email "
+ "FROM user " + );
看起来你错过了陈述的结尾。
答案 2 :(得分:0)
嗯,你的功能定义:
function sendMail("username","email") {...}
对我来说看起来不像是有效的JavaScript,除此之外,你永远不会调用该函数。
伪代码,怎么做:
function sendMail(username, email) {
var link = "jadajada" + email; // .... etc
}
sendMail("+username+","+email+");