浏览 1138 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2015-12-21
规则包:新建一个学生录入规则包,此规则包接受一系列参数(编号,姓名,性别,年龄,年级,备注),将数据全部插入到内存表中,在定义一个list<list>查询内存表数据。 Java类调用(可调用不同版本):在Eclipse中制作一个Test10类,main中接收对象,将对象传给规则执行,查询执行结果,可执行选择版本,执行不同版本下的规则文件。从上面例子都能看出来,从规则调用过来的学生表中数据都是list<list>类型的,在此希望是一list<Student>型式的数据。 修改规则包 点击内存表“学生表”的“学生表操作”选项卡,点击 图标,如下图: 勾选上方法getHeaderList(),如下图: 点击确定,如下图: 修改规则“查询学生信息”,如下图: 修改操作如下图: ` 替换后显示如下图: 点击保存 图标,导出规则编译文件,如下图: 添加java类 在java工程中添加一个java类,名为StudentInfo.java,其内容编辑如下: package com.flagleader; import java.util.ArrayList; import java.util.List; public class StudentInfo { private Student student; private List<Student> studentList = new ArrayList<Student>(); public StudentInfo() { student = new Student(1, "李丽", 12, '男', "六年级", "无"); } public Student getStudent() { return student; } public void setStudent(Student student) { this.student = student; } public List<Student> getStudentList() { return studentList; } public void setStudentList(List<Student> studentList) { this.studentList = studentList; } } 在java工程中添加一个java类,名为Test10.java,其内容编辑如下: package com.flagleader; import java.io.File; import java.util.List; import com.flagleader.engine.RuleEngine; import com.flagleader.engine.RuleEngineException; import com.flagleader.engine.RuleEngineFactory; import com.flagleader.engine.RuleEngineManager; /** * 调用指定目录下默认文件下的编译文件 * 使用的是RuleEngine,该接口只能用于本地调用 * 可以指定目录下,执行哪个版本下的编译文件。 * 如RuleEngineFactory.getInstance("1.1").getRuleEngine(); * @author Administrator * */ public class Test10 { public static void main(String[] args) { try { // 编译文件指定目录,默认版本目录是指定目录下的default RuleEngineManager.getInstance().init(new File("e:\\rscfile")); // 工厂模式,该接口只能用于本地调用,getInstance("1.1")中的1.1是指定目录下的文件名 RuleEngine engine = RuleEngineFactory.getInstance("1.3").getRuleEngine(); // 以dto形式为规则传参 StudentInfo studentInfo = new StudentInfo(); // 执行规则,其中"student.add"为规则全名,student为传入参数 engine.executeBeans("student.add", studentInfo.getStudent(),studentInfo); // 执行完规则后,获取数据,"studentList"必须和规则中取内存表数据的变量名一致 List<Student> list=studentInfo.getStudentList(); for (Student student : list) { System.out.println(student.toString()); } } catch (RuleEngineException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 执行java测试类 点击执行后,可以看到如下结果: 说明已经调用了student.add规则包,并且根据传入的参数,返回处理结果以list<list>形式展示。 同理,任何的其他java类,只需加入上述的代码,即可完成调用规则包的工作。 同理,上述例子都可以这样使用。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |