我一直在使用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,以便切換到其他腳本語言更容易。 –