论坛首页 Java企业应用论坛

是否有可以编辑java bean对象的通用web组件?

浏览 3583 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-01-24  
一个系统,其输入会是一些根据xsd生成出来的java bean对象。

现在的目标是想要有个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,也太不人道了吧?)
   发表时间:2007-01-24  

把pojo搞成类似jmx的操作方式?

简单的对象都好操作,但是复杂的就很麻烦.


  • 描述: 编辑属性
  • 大小: 83.8 KB
0 请登录后投票
   发表时间:2007-01-24  
不需要多复杂的对象网络。可以假设要编辑的java bean是颗树,并且所有类型不是primitive, String, Date之类的值就是其它的java bean或者一个数组。
0 请登录后投票
   发表时间:2007-01-24  

那你自己写一个吧,不会是非常复杂,可以参考
xmlrpc把javabean转换成hashtable和把hashtable转换成javabean,
然后hsshtable在转换成xml.
根据xml描述来编辑节点.




  • 描述: xmlrpc 编辑节点
  • 大小: 42.3 KB
0 请登录后投票
   发表时间:2007-01-24  
自己写不是麻烦马。

显示还好说,xml to java也没问题。但是这个增,删,改的功能是要在UI上做文章的。比如弄个javascript什么的,当点击“add”的时候自动弹出一个小section(象gmail那样,当点击reply,页面就会变化)。

还有validation,比如对int的property要求检查输入为整数;对Date的property要检查输入为日期等等。

要是有现成的多好。难道这个东西的需求不普遍?
0 请登录后投票
   发表时间:2007-01-24  
ajoo 写道
自己写不是麻烦马。

显示还好说,xml to java也没问题。但是这个增,删,改的功能是要在UI上做文章的。比如弄个javascript什么的,当点击“add”的时候自动弹出一个小section(象gmail那样,当点击reply,页面就会变化)。

要是有现成的多好。难道这个东西的需求不普遍?
XMLBeans来转XSD=>Java,然后利用XML + XSLT来展现?现成的没有,我们现在是手工干,没有自动化生成它来实现。
0 请登录后投票
   发表时间:2007-01-24  
YuLimin 写道
ajoo 写道
自己写不是麻烦马。

显示还好说,xml to java也没问题。但是这个增,删,改的功能是要在UI上做文章的。比如弄个javascript什么的,当点击“add”的时候自动弹出一个小section(象gmail那样,当点击reply,页面就会变化)。

要是有现成的多好。难道这个东西的需求不普遍?
XMLBeans来转XSD=>Java,然后利用XML + XSLT来展现?现成的没有,我们现在是手工干,没有自动化生成它来实现。

虽然有些bean是从xsd生成出来的,但不都是。理想情况是不要管什么xml,xsd。只是pojo=>html+javascript。而且最好不是静态代码生成,而是动态根据java bean metadata产生页面。

0 请登录后投票
   发表时间:2007-01-25  

那你就用 xmlspy进行编辑吧,xmlspy支持根据xsd进行校验.




  • 描述: xsd
  • 大小: 19.1 KB
0 请登录后投票
   发表时间:2007-01-25  
xmlspy怎么编辑java bean?怎么在web page上用?怎么调用我们的系统?

0 请登录后投票
   发表时间: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;}
}

又长进了,附件只能是一定的类型,把它们压在一起了。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics