1.JavaAction是原生动作
JavaAction是X-Meta引擎中的原生动作,理论上只有JavaAction才是可直接执行的,而其它事物模型想要变成东走执行,则必须要实现一个名为run的行为。
2.JavaAction要调用的Java代码规则
JavaAction支持参数为ActionContext的公有的静态方方法,返回值没有限定。
比如:public static void run(ActionContext actionContext)和public static String run(ActionContext actionContext)都是支持的。
而:public void run(ActionContext actionContext)不是静态方法不被支持,public static void run();public static void (String args[]);等参数不是ActionContext的也不被支持。
3.Java类名和方法名
根据规则,调用一个JavaAction需要指定Java类名和要执行的方法名。
4.JavaAction的三种调用方式
- 使用外部Java
Java代码的编写和编译在模型之外实现,这里只调用编译好的类,这是推荐的使用方法。
- 使用内部Java
Java代码编写到当前动作的事物管理器下,XWorker负责编译。
- 直接编写代码
在当前事物中直接编写代码,需要指定代码中的类名,不需要定义package,其他遵循Java的习惯。
<?xml version="1.0" encoding="utf-8"?>
<JavaAction name="JavaActionDemo" descriptors="xworker.lang.actions.JavaAction"
isSynchronized="false" useOuterJava="false" className="Test" methodName="run">
<code><![CDATA[import org.xmeta.ActionContext;
public class Test{
public static void run(ActionContext actionContxt){
System.out.println("Hello World from Java");
}
}]]></code>
</JavaAction>