[英]Calling JavaScript function in Java
我正在尝试在Java项目中使用javascript代码发送电子邮件。 数据库连接工作正常,我已经对其进行了测试。 我在第1行的形式参数(#1)之后收到错误: javax.script.ScriptException:sun.org.mozilla.javascript.internal.EvaluatorException:missing)
唯一相关的信息不容易报告:执行的最终 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
)。
不知道这是不是错字:
result = request.executeQuery("SELECT user.login, user.email "
+ "FROM user " + );
您似乎错过了声明的结尾。
嗯,您的函数定义:
function sendMail("username","email") {...}
在我看来,JavaScript不是有效的JavaScript,除此之外,您永远不会调用该函数。
伪代码,怎么做:
function sendMail(username, email) {
var link = "jadajada" + email; // .... etc
}
sendMail("+username+","+email+");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.