参考文献:
[1] http://blog.sina.com.cn/s/blog_6ffd47bf0100rm1p.html
[2] http://www.qqread.com/java/2008/11/r437179.html
[3] http://zhidao.baidu.com/question/88668316.html?fr=qrl&index=0
[4] http://zhidao.baidu.com/question/549018434.html?push=related&group=0
[5] http://bbs.csdn.net/topics/380049531
[6] http://yin123.blog.51cto.com/882581/389682
文献1中在Web project中添加Struts2.1、Spring3.0、Hibernate3.3都有截图记录,这里就不在赘述。后面部分还有一些挖掘空间。
这里就说下我遇到的问题吧
1、 Access数据库可以连接,读取,但是Hibernate反向工程一直有一个“Generating Artifacts ERROR”错误,看了一些说法,说JDBC驱动太老什么的,我用了最新的JDK1.7的驱动也不行。还是老老实实用标准一点的数据库吧,我用了MySQL,一次就成功了。顺便说下,数据库就照着文献1的结构建,特别是表名“users”,不然后面代码有的改了。。。
2、文献1后面就没截图了,我也不知道到底目录结构是咋样的。只能看着Java文件里的包名自己摸索,现在附上src的结构图。
3、structs.xml映射机制,点击JSP页面的按钮后,就会调用UserAction.java的函数,根据函数的返回值在structs.xml搜索该对应的操作(到其他的JSP页面还是其他UsersAction的操作)。
4、 JSP和Structs2在Myeclipse中有点bug,用它validate就会指出错误,需要把自动validate关掉。而且,JSP标签s:textfield 和 s:form不能识别,需要在文件头上加上:
<%@ taglib uri="/struts-tags" prefix="s"%>
5、最大的问题就是strut2类库中包含antlr-2.7.2.jar而hibernate使用antlr-2.7.6.jar而引起的异常java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I ,我看到所有的网页都说,把antlr-2.7.2.jar删掉。幸好我留了个备份,删掉以后就会,如果你把class文件删掉,就不会有编译结果,但是还不报错。乱删之后直接就提示编译错误了。我的方法是把antlr-2.7.6.jar该名成antlr-2.7.2.jar,再去替换原来antlr-2.7.2.jar的包。而且注意antlr-2.7.2.jar还有隐藏在其它Jar包里的,必须用winrar打开,也把antlr-2.7.2.jar替换掉。可以用com.genuitec.eclipse.lib.struts2和com.genuitec.eclipse.cross.easystruts.eclipse作为关键字去Myeclipse的安装文件夹搜索。
附上源代码:http://pan.baidu.com/share/link?shareid=451955&uk=654753681