最近的一个项目中用到了大量的开源项目,在这里将会一个个简单的做个介绍
现在手头上正做interface,我们的做法是采用webonline的方法来处理,借助flatworm实现xml数据与java 对象的转换。Flatworm的实质就是利用String.substring 这个方法把我们上传的文件分成小块,然后把这些小块组成我们所需要的valueObjcet;javadoc
假设我们需要将一个学校的学生纪录上传到我们的系统,文件格式如下;
NAME06/11/200303:47:12BEHAVIOR
Java_jessie06/11/200400:00:12good
输出的文件如下:
RECORD NAME | TYPE | LENGTH |
v_name | char | 11 |
v_date | char | 10 |
v_time | char | 8 |
v_behavior | char | 20 |
针对上面的layout我们需要编写如下数据转换描述文件:
<?xml version="1.0" encoding="ISO-8859-1"?>
<file-format>
<converter name="char" class="com.blackbear.flatworm.converters.CoreConverters" method="convertChar" return-type="java.lang.String"/>
<record name="vehInspectionWKValue">
<record-ident>
<length-ident minlength="49" maxlength="49"/>
</record-ident>
<record-definition>
<bean name="studValue"class="StudValue"/>
<line>
<record-element length="11" beanref="studValue.name" type="char"/>
<record-element length="10" beanref="studValue.requestDate" type="char"/>
<record-element length="8" beanref="studValue.requestTime" type="char"/>
<record-element length="20" beanref="studValue.behavior" type="char"/>
</line>
</record-definition>
</record>
</file-format>
根据上面的配置文件我们可以写出相应的vo来;
public class StudValue {
private String neme;
private String requestDate;
private String requestime;
private String behaveior;
……
set、get方法
……
}
然后我们所要做的事情就是把上面上传的文件转换到我们写好的vo中来。做法如下:
//读取数据转换描述XML文件
FileFormat ff = parser.loadConfigurationFile("D://star//Trans//data//upload.xml");
//读取需要绑定的数据文件
InputStream in = new FileInputStream("D://star//Trans//data//java_jessie.txt");
BufferedReader bufIn = new BufferedReader(new InputStreamReader(in));
MatchedRecord results;
通过results 的getNextRecord方法可移动记录指针,通过results的getBean即可得到绑定的value object。
好了。flatWorm就介绍到这里:有什么疑问可以可以参阅http://flatworm.sourceforge.net/;
以后将陆续介绍其他的开源项目;