听说MyEclipse 8.0 GA已经添加了对Struts2的支持,赶紧尝试一下!
首先当然得创建个Web Project,一个空的Web Project就行
然后是点鼠标左键6下:
菜单栏“MyEclipse——Project Capabilities——Add Struts Capabilities”添加Struts
菜单栏“MyEclipse——Project Capabilities——Add Spring Capabilities”添加Spring
菜单栏“MyEclipse——Project Capabilities——Add Hibernate Capabilities”添加Hibernate
呵呵,当然没那么简单....添加还是得配置一些东西的
添加Struts项目支持:
可以看到的确增加了对Struts2.1的支持
Next之后
是对Struts2 Lib库的选择,点击左下角链接可以去看看上面显示的Lib库里面都有些什么Jar包
里面Jar包的版本都是比较新的(因为每次MyEclipse打开都会检测更新,所以打开的时候老慢了!)
完成选择之后可以看到Struts.xml已经加到src下
再来看看web.xml里面
Struts2的过滤器已经添加到web.xml里面,而且引用的过滤器类已经是官方推荐过滤器StrutsPrepareAndExecuteFilter,不再是原来的旧的FilterDispatcher
再去struts.xml看一看
可以看到里面还是空的
该为项目添加Spring了:
在Spring添加界面上同样有链接可以去看看Spring的库里面有些什么Jar包
而且看这里,可以选择将这些Jar包拷贝到你自己目录的lib下面
Next之后
有AOP Builder的选择和是否创建Spring配置文件的选择,而且还能更改Spring配置文件的路径和文件名
完成添加,去applicationContext.xml里面看一看
里面是空的,但是已经帮你引入了Spring的一些Schema
轮到Hibernate:
大致上都差不多,同样是库选择和是否拷贝到项目lib选择
如果对Annotations熟悉的话还能为Hibernate添加Annotations支持
Next之后
是新建Hibernate自己的配置文件还是将配置整合到Spring的配置文件里面去?
看项目需求或者个人爱好吧!
这里选择整合到Spring的配置文件去
这里可以看到MyEclipse的一些心思,考虑到使用者的项目未必已经添加了Spring或者有些项目需要将Spring配置也分割成几部分,问一下是新建Spring配置文件还是使用已存在的配置文件,我这就选择刚才添加的Spring所创建的配置文件了。
界面下方还有提示,我的Spring配置文件里面还没有添加Hibernate配置,还有是否需要更改Session工厂的名字。不改,Next...
数据源的设置,我用的是JDBC连SQLServer2005
默认提供的是MyEclipse内置的Apache Derby数据库
继续Next
MyEclipse会帮你创建Hibernate的Session工厂,并要你选择Hibernate Session工厂类的存放路径。
这里要赞一个MyEclipse的客户体验,他们连你创建项目时不会先去构建Package路径也考虑在内,在输入框的右边给了个New Buttom
准备完成,出提示!
引入的包有冲突,是覆盖还是保持一致?都一样,同名才有冲突。
惯例,去看Spring配置文件
Hibernate的数据源配置已经在里面了
而且很杯具的发现为了截图,对数据源的疏忽,选了默认的Derby数据,赶紧修改去,呵呵
搭配到此完成,新鲜出炉啊!空项目先试一试吧!
我配置了自己安装的Tomcat 6 到MyEclipse里面去当项目容器
部署....运行......
猜一猜结果?
恭喜你!运行失败!!!哈哈哈哈.....
没想到吧?为什么捏?
看错误提示:
是Struts2过滤器找不到?不会啊,错误提示说的是出异常了,不是找不到类。
看看web.xml里面,没有Spring的配置和监听?这也与Struts2过滤器错误无关啊!
很没有头绪,我这里卡了好一会!
再仔细检查,发觉我的项目空间里面有两个项目的存在,并且都部署在同一个Tomcat上面。
难道有关系?移除一个试试看。
启动成功!
觉得奇怪,自己又弄了一次,两个项目一起部署和运行,出现跟上面同样的错误提示!
难道说Tomcat6 不支持多项目并行?还是需要进行特殊配置?这个不在本话题之内,慢慢再研究了....
重新部署...运行....
好了,页面出来了!
整个搭建好了吗?还没呢!
别忘了在web.xml里面,刚才配置完Struts2之后就一直没变过,Spring的配置和监听呢?
不知道MyEclipse遗漏还是咋地,难道说现在Spring2已经不用配置到web.xml里面去了?
反正我是得配置一下,给web.xml加上Spring的配置和监听
然后再次部署...运行....
又猜?
嘿嘿.....继续失败!
不过这次的错误提示就清晰多了,Spring监听类没找到!
为什么捏?Spring的Core包没有这个类???
的确是没有!看看这个类的Package路径,是org.springframework.web下的,自己试试能不能找到web?
我们来看看项目里引入的包
那这东西在哪呢?
看到下面那个被打勾的Spring 2.5 Web Libraries了吧?(勾选这个包,上面的Core Lib也会被自动勾选)
将这两个Lib库引入一看,天!那么多Jar包,用得着么....
其实在为项目加入Spring的时候就有这个包选择,还能直接将Jar拷贝到WEB-INF/lib里
添加完,Redeploy,运行正常!
到这里框架就搭建得差不多了,再下来无非就是添加JSP,然后加Action对应JSP,加Service对应Action,加DAO对应Service,Hibernate映射数据库生成Model,跳转DAO,在Service添加业务逻辑之类的,这些教程已经很多了,而且项目之间有可能有差异,就不说这些了。
下面在这个MyEclipse创建SSH的过程中遇上疑惑的地方:
1.在添加Struts2的过程中有一个配置文件存放路径的选择
看到上面的路径没?
/WEB-INF/struts-config.xml
实际上生成的文件呢?
/src/struts.xml
这到底是MyEclipse的客户体验,让我们在src下面比较好编辑呢?还是算弄错了路径,写错了文件名呢?
2.在WEB-INF目录下出现了这两个文件
spring-form.tld 和 spring.tld
很莫明其妙的出来了,为啥要放这两个文件在这呢?
3.将项目部署到Tomcat之后我去Tomcat下面(因为Tomcat始终有缓存延迟问题,喜欢到Tomcat目录下面去清缓存)的项目目录查看的时候顺便看了看项目的WEB-INF/lib
哇!足足30多MB的Jar包塞在里面!!
能看出来这些包里面重复的有多少吗?能看懂这里面的包到底有多少是有用到的吗?
用工具搭建的效果就是这样的了,方便!但是也臃肿!
真要做项目上用,还是自己配置,一个一个捡包的好....
惯例PS:
发现文章有错的请通知我,非常感谢!
来过的朋友请顺便踩一脚......^_^