我一直在使用rhino来允许一些应用程序的定制。下面是一个从Java调用的JavaScript函数的示例:获取JavaScript对象的字段值
function() {
var phone = this.telephoneNumber;
phone = phone.replace(/[^+0-9]/g,"");
if (phone.indexOf("+") == 0) {
phone = "00" + phone.substring(1);
}
if (phone.indexOf("0041") == 0) {
phone = "0" + phone.substring(4);
}
if (phone.indexOf("0") == 0) {
phone = "0" + phone;
}
return {
Name: this.sn + " " + this.givenName,
firstName: this.givenName || "",
lastName: this.sn || "",
phone: phone,
service: "",
info: ""
};
}
然后,java应用程序可以获取返回对象的值,无论它需要做什么。
既然rhino是JVM的一部分,我想使用脚本API而不是Rhino API,但是我还没有找到如何从Java代码中获取JavaScript对象的字段值。
Rhino不是* JVM的一部分;它是运行时的一部分。这就像Java只是使用Xalat的补丁版本Xalan一样。除非他们在运行时对Rhino的版本进行了大量优化,但是无法将优化重新提供给Rhino,否则您无法取得任何显着的性能提升。此外,你得到一个旧版本的犀牛。 –
@DavidEhrmann是的,目的不是为了获得性能改进,而是使用标准脚本引擎API,以便切换到其他脚本语言更容易。 –