本帖最后由 kqogje 于 2009-06-22 10:55:43 编辑

解决方案 »

  1.   

    原作者:http://hi.baidu.com/55842223/blog/item/dd989aa16f91738c4610647b.html在用ssh开发web应用时,需要对生成的各个类文件进行组织,下面就对一个可行的目录方案进行介绍:譬如应用中有一个用户管理模块,则在公共包下建立一个user包,如该公共包可以为com.simon.oa,在user包下包括如下子包1、controler包该包放置各种struts的action。
    2、dao包该包放置各类dao(data access object),也就是放置对数据库访问的实现类,在用myeclipse中的“Hibernate Reverse Engineering”进行反向操作时在某一个目录中就会生成对应某个表的DAO,生成后可将该DAO拖到dao包中。在某些应用中将DAO作为接口,在该接口中包括所有对数据库的操作方法,然后在dao包建立一个hibernate包,在hibernate包中放置对DAO接口的实现,譬如:UserDAO接口有一个实现类为UserDaoImpl,将该类放置到hibernate包中,实际的开发倾向于后一种方式,因为对这个DAO接口可以实现spring的IoC操作。(不知道myeclipse对此是怎么考虑的,这个问题让我纠缠了很久,误将DAO理解成一个能够进行实际操作的类,而不是一个接口,以后开发要注意)
    3、model包该包中放置hibernate反向工程生成的bean和该bean对应的.hbm.xml文件。
    4、service包该包放置业务操作类,譬如用户服务类,一般情况将该用户操作类提取一个接口,然后在service包下生成一个impl包,在impl包中才放置用户操作接口的实现类。该用户接口实现类中调用DAO接口对数据库进行操作,而调用该实现类的方法在struts的action中。
    5、vo包(value object)vo包中的中包括struts中使用的POJO及actionform等信息。VO: Value Object
    DTO: Data Transfer Object
    个人理解VO和DTO是类似的东西,原则上VO和DTO只有Public Fields,主要用于进程之间数据传递的问题,VO和DTO不会传递到表示层,在业务层就会被吸收。但看到很多人在建立VO和DTO时,也含有Setter,Getter属性和一些其它的辅助方法,这也无可厚非,我自己也不能确定这对不对。6、struts包主要放的struts相关的文件
     
      

  2.   

    一楼的,5、vo包(value object) vo包中的中包括struts中使用的POJO及actionform等信息。 VO: Value Object 
    DTO: Data Transfer Object 
    个人理解VO和DTO是类似的东西,原则上VO和DTO只有Public Fields,主要用于进程之间数据传递的问题,VO和DTO不会传递到表示层,在业务层就会被吸收。但看到很多人在建立VO和DTO时,也含有Setter,Getter属性和一些其它的辅助方法,这也无可厚非,我自己也不能确定这对不对。
    这里的vo包我还是不太明白是存哪些文件,及存的那些文件应该怎么调用,你再说下好吗?