本案例的需求是:
规则包:新建一个学生录入规则包,此规则包接受一系列参数(编号,姓名,性别,年龄,年级,备注),将数据全部插入到内存表中,在定义一个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类,只需加入上述的代码,即可完成调用规则包的工作。
同理,上述例子都可以这样使用。
- 大小: 168 KB
- 大小: 145.4 KB
- 大小: 147.1 KB
- 大小: 125.5 KB
- 大小: 139.3 KB
- 大小: 126.7 KB
- 大小: 196 KB
- 大小: 141.6 KB
分享到:
相关推荐
Java版精华区 <br>含java jsp及js等精华帖子合集<br>适合收藏 查询<br><br>序号 精华区主题 <br>--------------------------------<br> 1. [目录]Java教程 <br> 1. [目录]Java语言教程 <br> 2. [目录]来自java的传说...
在.NET框架中,C#提供了多种数据集合类用于存储和管理对象,其中`ObservableCollection`和`List<T>`是两种常见的类型。它们都是用于创建可变列表,但有着不同的应用场景和特性。 首先,我们来详细了解`List<T>`。`...
Express Editions)<br><br>Microsoft Visual Studio .NET 2003 <br>...Visual C++ 5.0<br>Microsoft Visual Studio 97<br>Microsoft eMbedded Visual Tools 4.0<br>Microsoft eMbedded Visual Tools 3.0<br><br>
Express Editions)<br><br>Microsoft Visual Studio .NET 2003 <br>...Visual C++ 5.0<br>Microsoft Visual Studio 97<br>Microsoft eMbedded Visual Tools 4.0<br>Microsoft eMbedded Visual Tools 3.0<br><br>...
<br>UltraEdit 7.2<br>WebGain Studio 4 with VisualCafe<br>Forte for Java开发指南<br>Dreamweaver UltraDev<br>IBM NetObjects ScriptBuilder3.0<br>使用HomeSite加速JSP的开发<br>Java2的安全新特性下的Applet...
<br>二、Java与C#<br>三、C#的主要特征<br>四、安装运行环境<br>五、C#编辑器<br>六、C#的程序结构<br>七、C#和名称空间<br>八、C#中一个经典例程的编写与编译<br>九、C#编程实战演习ABC<br> 1、使用Visual Studio ...
走进Visual C++ *<br><br>1 理解VC工程 *<br><br>2 MFC编程特点 *<br><br>3使用Wizard *<br><br>二 MFC程序结构分析 *<br><br>1 WINDOWS程序工作原理 *<br><br>2 建立应用程序 *<br><br>3 程序结构剖析 *<br><br>...
1,01.zip<br>Toolbar - Custom status messages and tooltips<br>用户状态信息与工具提示(3KB)<END><br>2,02.zip<br>Remove system menu from floating toolbar<br>从浮动工具条中去除系统菜单(2KB)<END><br>3,03....
如何自定义消息 <br><br><br>Visual C++编程技巧之三 <br><br>17、如何创建一个字回绕的CEditView <br><br>18、通用控件的显示窗口 <br><br>19、移动窗口 <br><br>20、重置窗口的大小 <br><br>21、如何单击除了窗口...
本人不想使用庞大的Visual <br>Studio,但为了能编辑和使用<br>java,不得不开发了这一款小工具<br>,可以编译java程序,但是必须<br>安装好Java环境.<br><br> 本编辑器有如下功能或者是<br>如下优点:<br> 1,关键字...
Microsoft Access Visual Basic参考.chm<br>Microsoft Excel Visual Basic参考.chm<br>Microsoft FrontPage(Page对象模型) Visual Basic参考.chm<br>Microsoft FrontPage(Web对象模型) Visual Basic参考.CHM<br>...
40.zip<br>Getting rid of Window List from MDI applications<br>在MDI应用中去掉窗口列表(5KB)<END><br>41,41.zip<br>Save and Restore<br>存储和恢复(7KB)<END><br>42,42.zip<br>A Quick Start<br>使用微软本地化...
anicon2.zip<br>在窗口的标题条上显示动画图标(2KB)<END><br>10,simple.zip<br>一般用途的分隔器类(43KB)<END><br>11,outlook.zip<br>OutLook风格的分隔条(59KB)<END><br>12,appbar1.zip<br>实现桌面的工具条...
26.zip<br>ActiveX Control Property Page Container<br>ActiveX控制属性页容器(6KB)<END><br>27,27.zip<br>a popup list box like that in Visual C++ 6.0<br>一个具备VC6.0风格的弹出式列表框(6KB)<END><br>28,28....
15.zip<br>Internet Mail Look<br>网络邮件浏览(4KB)<END><br>93,16.zip<br>E-Mail file attachment using MIME<br>使用MINE实现邮件附带文件(10KB)<END><br>94,17.zip<br>A simple web browser using the IE4 ...
当我们谈论LINQ(Language Integrated Query)时,它是C#中用于查询数据的强大工具,可以与List<T>完美配合。例如,如果你想找出所有年龄大于18岁的学生,你可以这样做: ```csharp var adults = students.Where(s ...
8<br><br>0018 有效利用Visual Studio 2005附带程序 8<br><br>0019 有效使用MSDN帮助 9<br><br>0020 如何设置MSDN帮助 9<br><br>1.4 其他 10<br><br>0021 如何添加项目引用 10<br><br>0022 如何添加Web...
PIAB 与 WCF: 将 Policy Injection Application Block 与 WCF 服务集成<br><br>• WF 操作指导: 使用 Windows Workflow Foundation 构建状态机<br><br>• CLR 完全介绍: 动态语言和 Silverlight<br><br>• 基本技术:...
<br><br>目录介绍<br>第1章 Visual C++网络通信编程基础 1<br>1.1 Winsock1.1编程技术 1<br>1.1.1 Winsock的基本概念 1<br>1.1.2 Winsock的编程特点 2<br>1.1.3 Winsock基本的API 2<br>1.1.4 Winsock的...
第27章 Visual Basic.NET和SQL Server开发应用程序 539<br>27.1 Visual Basic.NET连接数据库 539<br>27.1.1 熟悉VB.NET集成开发环境 539<br>27.1.2 通过ADO.NET连接数据库 541<br>27.2 Visual Basic.NET开发学生档案...