浏览 3593 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-24
现在的目标是想要有个web page来交给测试人员进行验收测试。测试人员可以根据xsd的定义,在网页上输入测试数据,这个网页会把输入的数据映射成java bean对象,然后作为参数传入系统,通过比较运行结果来进行测试。 比如: public class Person { String name; Date birthdate; JobCategory job; Account[] accounts; } 希望这个咚咚能够分析Person这个java bean的元数据,自动生成对name, birthdate的edit box,对job,则递归地根据JobCategory这个bean的元数据生成各种编辑框。对accounts数组,能够支持增,删,改等操作。 为什么不写自动测试呢?因为验收方根本不用java,也可能不是程序员。 这个功能感觉有点像ror的CRUD支持。只不过不是存在数据库里,而是只要产生对象就好。印象中似乎有swing或者是awt的java bean editor?不过最好有web版本就好了。 不知道有没有现成的框架可以做这个的? 如果不存在,大家觉得做一个通用的open source有没有实际价值呢?是仅仅是我们自己需求比较变态,还是这个需求相对来说有普遍性? (好久不见readonly了,这家伙莫非犯了事进去了?这监狱居然不给难友们提供宽带Internet,也太不人道了吧?) 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-01-24
把pojo搞成类似jmx的操作方式? 简单的对象都好操作,但是复杂的就很麻烦. |
|
返回顶楼 | |
发表时间:2007-01-24
不需要多复杂的对象网络。可以假设要编辑的java bean是颗树,并且所有类型不是primitive, String, Date之类的值就是其它的java bean或者一个数组。
|
|
返回顶楼 | |
发表时间:2007-01-24
那你自己写一个吧,不会是非常复杂,可以参考 xmlrpc把javabean转换成hashtable和把hashtable转换成javabean, 然后hsshtable在转换成xml. 根据xml描述来编辑节点. |
|
返回顶楼 | |
发表时间:2007-01-24
自己写不是麻烦马。
显示还好说,xml to java也没问题。但是这个增,删,改的功能是要在UI上做文章的。比如弄个javascript什么的,当点击“add”的时候自动弹出一个小section(象gmail那样,当点击reply,页面就会变化)。 还有validation,比如对int的property要求检查输入为整数;对Date的property要检查输入为日期等等。 要是有现成的多好。难道这个东西的需求不普遍? |
|
返回顶楼 | |
发表时间:2007-01-24
ajoo 写道 自己写不是麻烦马。
XMLBeans来转XSD=>Java,然后利用XML + XSLT来展现?现成的没有,我们现在是手工干,没有自动化生成它来实现。
显示还好说,xml to java也没问题。但是这个增,删,改的功能是要在UI上做文章的。比如弄个javascript什么的,当点击“add”的时候自动弹出一个小section(象gmail那样,当点击reply,页面就会变化)。 要是有现成的多好。难道这个东西的需求不普遍? |
|
返回顶楼 | |
发表时间:2007-01-24
YuLimin 写道 ajoo 写道 自己写不是麻烦马。
XMLBeans来转XSD=>Java,然后利用XML + XSLT来展现?现成的没有,我们现在是手工干,没有自动化生成它来实现。显示还好说,xml to java也没问题。但是这个增,删,改的功能是要在UI上做文章的。比如弄个javascript什么的,当点击“add”的时候自动弹出一个小section(象gmail那样,当点击reply,页面就会变化)。 要是有现成的多好。难道这个东西的需求不普遍? 虽然有些bean是从xsd生成出来的,但不都是。理想情况是不要管什么xml,xsd。只是pojo=>html+javascript。而且最好不是静态代码生成,而是动态根据java bean metadata产生页面。 |
|
返回顶楼 | |
发表时间:2007-01-25
那你就用 xmlspy进行编辑吧,xmlspy支持根据xsd进行校验. |
|
返回顶楼 | |
发表时间:2007-01-25
xmlspy怎么编辑java bean?怎么在web page上用?怎么调用我们的系统?
|
|
返回顶楼 | |
发表时间:2007-02-02
上个周末,把楼主的这个需求当作习题做了一下,准确地说做了一半,从任意咖啡豆动态导出Schema和简单测试网页。就用我在《元数据、开放数据模型及动态系统--形而下学篇》描述的套路。另一半应该更容易。任何XML Parser都支持Validation,一般用XML/Schema的理由之一就是Validation的能力,所以Validation因该不是问题。
我为此写了一个BeanMetadataReader,和一个XSLT,然后就是: EndPoint in = new EndPoint("object:java.beans.Beans"); in.setProperty("format", "metadata"); EndPoint out = new EndPoint("file:///C:/hyperdigital/dataset/test-output/person.html"); String[] xslts = {"file:///C:/hyperdigital/dataset/test-output/bean-test.xslt"}; DataPipeLineFactory factory = DataPipeLineFactory.newInstance(); XMLReader reader = factory.newDataPipeLine(in, out, xslts); Person bean = new Person("first", "last"); DataSource source = factory.newDataSource(in, bean); reader.parse(source); EndPoint里的object:java.beans.Beans只是一个标识,不是URL,表示输入是一个咖啡豆。和我在以前文章里写得不一样,改过了。 附件是用于测试的XSLT,以及产生的Schema和测试网页的HTML。如果想要花哨的网页,只要修改XSLT就行了,甚至只要在XSLT里import一个js文件就可以了。 刚知道最多只能有三个附件,那就把测试用的咖啡豆贴在这里。 class Person { public Person() {} public Address getAddress() {return null;} public Date getDateOfBirth() {return null;} public String[] getEmailAddresses() {return new String[3];} public String getFirstName() {return null;} public String getLastName() {return null;} public boolean isMale() {return true;} public int getPinNumber() {return 1111;} } class Address { public String getAddressLine1() {return null;} public String getAddressLine2() {return null;} public String getState() {return null;} public String getTownship() {return null;} public String getZipCode() {return null;} } 又长进了,附件只能是一定的类型,把它们压在一起了。 |
|
返回顶楼 | |