イントラマートでMozilla RhinoのimportPackage()を使ってみる

2018-02-07イントラマート

イントラマートでMozilla RhinoのimportPackage()を使ってみる方法です。

イントラマートとは
株式会社NTTデータイントラマート社が開発・販売している、Webアプリケーションシステムのシステム共通基盤(統合型フレームワーク)で、国内の著名企業を中心に6,000社以上に導入されています。 イントラマートを導入することにより、Webシステム開発における短納期・低コスト・標準化推進・品質向上を実現できます。
詳しくはこちらをご覧ください。

イントラマートでMozilla RhinoのimportPackage()を使ってみる

イントラマートでMozilla RhinoのimportPackage()を使ってみます。

var logger = Logger.getLogger() ;

function init()
{
    importPackage( java.lang ) ;
    var str = new StringBuffer();

    str.append( "aaa" ) ;
    str.append( "bbb" ) ;

    logger.info( "文字列は[" + str + "]") ;
}

実行結果は

[INFO] 文字列は[aaabbb]

ちゃんとJavaのStringBufferが生成されています。

importPackage()を使えば「Packages」と「.」で連なる部分を短くできます。

importPackage()は「Mozilla Rhino」で定義されているようです。

但し


importPackage および importClass 関数は、JavaScript のグローバル変数スコープを「煩雑」にします。これを回避するために、JavaImporter を使用できます。

というようなことがあるので、

var logger = Logger.getLogger() ;

function init()
{

    importPackage( java.lang ) ;
    var str1 = new java.lang.String( "abcdefg"; ) ;    //←これはJavaのString
    logger.info( "文字列は[" + str1.trim() + "]") ;   //trim()があるのでOK

    var str2 = new String( "abcdefg" ) ;             //←これはJavascriptのString
    logger.info( "文字列は[" + str2.trim() + "]") ;  //trim()がないので例外エラーが発生します。
}

「new String()」と書くとJavascriptの「String()」が生成されているようです。
要注意です。

株式会社システムトラスト

イントラマートの導入・開発についてなど気軽にご相談ください。

お問合せ