38.15. Use ELite in your application

38.15.1. 在AOM中使用

AOM提供了一个组件,用以在 AOM 页面中执行ELite。因此,你首先需要引入该组件所在的命名空间,然后将ELite代码用<![CDATA[ ]]>包含起来。

示例:

<?xml version="1.0" encoding="UTF-8">
<!DOCTYPE HTML PUBLIC "" "">
<f:view xmlns="http://www.w3.org/1999/xhtml" 
xmlns:f="http://java.sun.com/jsf/core"
xmlns:w=http://www.apusic.com/jsf/widget
xmlns:layout="http://www.apusic.com/jsf/layout"
xmlns:om="http://www.apusic.com/jsf/misc">
   <w:head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
   </w:head>
   <w:page title="elite in aom">
      <om:elite>
         <![CDATA[
            define str = "Hello World";
            print(str);               
         ]]>
      </om:elite>
   </w:page>
</f:view>

当执行此页面时,会在控制台中输出:

2009-03-26 13:21:34 信息 [con.out] Hello World

<om:elite/>标签,颇有点似乎于jsp中的<%%>,只不过在<%%>内执行的是Java代码片断,而在 <om:elite/>标签内,执行的是ELite脚本而已。

由于AOM的内容已经超出本教程的范围,因此,本教程将不继续探讨,有兴趣的读者可以到 www.operamasks.org 上了解更多细节。

38.15.2. 在自己的程序中使用ELite

您也可以将ELite嵌入到您自己的程序中,以解决某些场景下需要脚本语言的问题。

JCP定义了JSR 223,专门用于解决如何在Java程序中以一种通用机制使用脚本语言,类似于JAXP。ELite对JSR 223有良好的支持,因此,我们完全可以用一种通用的、标准的API将ELite嵌入到您的 Java Application中。

JSR 223的使用也非常简单,只需将ELite提供的 elite-api.jar、elite.jar引入到类路径中即可。一个简单的例子如下:

package demo;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class Client {
   
   public static void main(String[] args) {      
      new Client().simpleUseage();
   }
   
   public void simpleUseage() {
      ScriptEngineManager manager = new ScriptEngineManager();
      ScriptEngine engine = manager.getEngineByName("elite");
      try {
         engine.eval("print('Hello World');");
      } catch (ScriptException e) {
         e.printStackTrace();
      }
   }
}

当执行此程序时,会在控制台中输出:

Hello World

当然,JSR 223所定义的接口并非这么简单,建议您阅读一下该规范所提供的JavaDoc。链接如下:http://www.jcp.org/en/jsr/detail?id=223