图解MyEclipse配置struts+hibernate+spring+FreeMarker
2009-01-18 22:35
627 查看
这几天把hibernate和spring好好看了下,再想想struts的一些东西,决定把3个整合一下一起用,表现层用struts+freemarker,业务层用spring,hibernate处理持久层。在struts中,利用委托,将action的处理委托给spring进行,struts只负责页面逻辑。
前些日子下了Eclipse 3.2+MyEclipse5.0M2,感觉MyEclipse一些东西还是不错的,就用它来做个整合。
首先,建立一个web project:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/014f83b81d1c7f32ebffb3d785855e5a.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/6e68083c68bbbc201934cd30a29891b0.jpg)
然后,给新建立的项目附加上struts的一些文件:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/1abdb46b200874e8925b97320bebfa6e.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/35b269f9aad5a91ee36361226a67da39.jpg)
完成后项目结构如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/e67f4f58498fe5f74a8288bb00d36ab9.jpg)
接着加入hibernate需要的文件:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/f446c010e63be7dc188079bbc2c7c1ac.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/fac907411681fd12fd776465bd422068.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/d26cb6ab741d90d4b89f0ed4dd9963ed.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/fa73cdb863679d9845fa0ab0d53f1612.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/97f58650ad14df26f2d179a9260d0304.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/0ec6f69f320d0e12969aea1fc2e952b4.jpg)
完成后项目结构为:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/5d54e4b38f9abf09bd4611c52a1c79a8.jpg)
再加入spring的文件:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/e38b0ce8b4ed69c1143ad1ec6a397660.jpg)
注意下面的选择:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/641172f94c7ee8c4f43b3c437571fc27.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/73e2b97f838b032dac5dbfabcbb065cf.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/9d5f4159f630a2bfa6845b691c6fa764.jpg)
完成后可以看到:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/5bc42e82f60500367ef6da8e37e2073c.jpg)
打开那个applicationContext.xml,将
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/04d3b9dd8e1309f0eadb147a77c910ca.jpg)
改为:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/84bdd1a156d3967fcc10fc3112d4a258.jpg)
现在还需要做一些修改,才能在运行的时候不报错,我以前也写过struts+hibernate的时候,会抛一个错,之所以是由于hibernate包含的那个xerces.jar,所以现在直接把它给删掉,没什么问题。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/e6de60c2c431463dbb9657a10a15916f.jpg)
在spring和hibernate那,有2个log4j.jar,老版本不好用,所以删除,换一个新版本。
删除
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/857cf56ca3cfccd259e748a81be12a2e.jpg)
和
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/529c4d3c8435e3db9b36ed464f7880ba.jpg)
,换上
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/ddebb414cf9abf3c65840e535e7a1a79.jpg)
,然后,在src下加入一个log4j.properties:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/3f4d2713040307e9cb8404aaa526653f.jpg)
内容如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/a047f8551f96028b619998c7c8e9948a.jpg)
这样log4j就配好了。
接下来是加入FreeMarker,jsp比不上,个人感觉。
先下一个freemarker.jar
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/24dc2805193f28d0d7a2f79e44a7b32d.jpg)
,加到WEB-INF下的lib目录,然后,打开web.xml,加入如下内容:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/d5c702d7fd31f7391ea52eb562e455c6.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/1a14eb22464a2d6eb92334e643bbf251.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/02d58e0f60aaedcbf5c6c03a59ce89a9.jpg)
下面来点实战演习。
切换到MyEclipse的hibernate视图。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/97dc543810b24106aff4793fcd1d1fe8.jpg)
打开数据库连接:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/9c21eb22917d4d1c14bb3ba7349634fa.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/2b9ff38dee3062da15f7efba77cf7dde.jpg)
然后,执行
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/61f3859a127e0d30d46ae66b286502e7.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/799dd0b44bd7d83d6c1dd83b4871c0b9.jpg)
自动生成几个文件:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/bee98e281fdd2989491fefac67ce208b.jpg)
并且,spring的applicationContext.xml自动加入
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/d54a0a39b70b2520001acb86c985b580.jpg)
然后,建立ftl页面,根据前面web.xml配置的freemarker设置,需要建立如下目录
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/60ef5f710bb0a9f90249ce3ae61b5e14.jpg)
先把页面逻辑处理下,打开struts-config.xml,然后进行如下操作
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/fcc4b7adc3584a2eb5880dc08de3f076.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/7dc174cf1364bd0620fba9e7f8119d24.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/3c468d2fcc6010e256ef0dc2308d959c.jpg)
继续加
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/ea718309aa1a1b07ccac59cc9b50dddd.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/79e052454dfd02c2f8474cf550e1cf28.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/a332c44866088c9e6f7bd9e8a7236f98.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/3b83022685f2304a52036b6ec0f89e46.jpg)
完成后效果如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/3fe8c38fb83722bef0a45d28ea62032d.jpg)
下面是3个页面:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/89f0acb0b363fb16edb6a53a803d544e.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/196191357294ea367e840fcd66e0440e.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/c34ff831da3854af52493ade8fd84f07.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/f28af0825b38390509e6772fdc2af05f.jpg)
这里注意下前2行,在freemarker中用struts标签。
前面说过action委托给spring做,许要在struts那加入
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/b6383e170d076d784100744eb2a95a07.jpg)
然后,action类需要修改下
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/ff3bb20d93986b9c8c147b7f9267700d.jpg)
下面的setter是为spring准备的。
struts配置那的action声明需要修改一下,说明用代理:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/8d9a53f5598392c761656eb4a76a6468.jpg)
然后在spring的applicationContext.xml加上:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/86d96baae9c1c644c819b38742ac7f65.jpg)
注意是用name,不是id。
发布,运行,结果抛了个错
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/7e43a731b2818d759fc8c3047281a8dd.jpg)
还好,问题不大,找到
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/ca546d0a10e6ebfbbfdf3ce4b00cdbbf.jpg)
加到WEB-INF/lib下就可以了。
开始测试
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/3c3dc62c7edfefac38681de1f7ebb0c2.jpg)
成功的话:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/4143150c2dbe77d8bd6dbe60fc61aac2.jpg)
否则:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/7181dfe0bb028fe86fbcdbc89416d569.jpg)
然后去数据库一看,郁闷,数据没进来,试了N久,最后发现spring里要定义个dataSource。原来sessionFactory的定义变为如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/c3b1f5b1d1966044357dd0b1d546d54b.jpg)
ok,一切正常。到这里,就写完了,只是为说明怎样用MyEclipse进行快速开发,毕竟平时做项目要的是进度,还要监管质量,有了MyEclipse,确实方便不少。
前些日子下了Eclipse 3.2+MyEclipse5.0M2,感觉MyEclipse一些东西还是不错的,就用它来做个整合。
首先,建立一个web project:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/014f83b81d1c7f32ebffb3d785855e5a.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/6e68083c68bbbc201934cd30a29891b0.jpg)
然后,给新建立的项目附加上struts的一些文件:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/1abdb46b200874e8925b97320bebfa6e.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/35b269f9aad5a91ee36361226a67da39.jpg)
完成后项目结构如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/e67f4f58498fe5f74a8288bb00d36ab9.jpg)
接着加入hibernate需要的文件:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/f446c010e63be7dc188079bbc2c7c1ac.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/fac907411681fd12fd776465bd422068.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/d26cb6ab741d90d4b89f0ed4dd9963ed.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/fa73cdb863679d9845fa0ab0d53f1612.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/97f58650ad14df26f2d179a9260d0304.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/0ec6f69f320d0e12969aea1fc2e952b4.jpg)
完成后项目结构为:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/5d54e4b38f9abf09bd4611c52a1c79a8.jpg)
再加入spring的文件:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/e38b0ce8b4ed69c1143ad1ec6a397660.jpg)
注意下面的选择:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/641172f94c7ee8c4f43b3c437571fc27.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/73e2b97f838b032dac5dbfabcbb065cf.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/9d5f4159f630a2bfa6845b691c6fa764.jpg)
完成后可以看到:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/5bc42e82f60500367ef6da8e37e2073c.jpg)
打开那个applicationContext.xml,将
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/04d3b9dd8e1309f0eadb147a77c910ca.jpg)
改为:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/84bdd1a156d3967fcc10fc3112d4a258.jpg)
现在还需要做一些修改,才能在运行的时候不报错,我以前也写过struts+hibernate的时候,会抛一个错,之所以是由于hibernate包含的那个xerces.jar,所以现在直接把它给删掉,没什么问题。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/e6de60c2c431463dbb9657a10a15916f.jpg)
在spring和hibernate那,有2个log4j.jar,老版本不好用,所以删除,换一个新版本。
删除
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/857cf56ca3cfccd259e748a81be12a2e.jpg)
和
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/529c4d3c8435e3db9b36ed464f7880ba.jpg)
,换上
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/ddebb414cf9abf3c65840e535e7a1a79.jpg)
,然后,在src下加入一个log4j.properties:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/3f4d2713040307e9cb8404aaa526653f.jpg)
内容如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/a047f8551f96028b619998c7c8e9948a.jpg)
这样log4j就配好了。
接下来是加入FreeMarker,jsp比不上,个人感觉。
先下一个freemarker.jar
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/24dc2805193f28d0d7a2f79e44a7b32d.jpg)
,加到WEB-INF下的lib目录,然后,打开web.xml,加入如下内容:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/d5c702d7fd31f7391ea52eb562e455c6.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/1a14eb22464a2d6eb92334e643bbf251.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/02d58e0f60aaedcbf5c6c03a59ce89a9.jpg)
下面来点实战演习。
切换到MyEclipse的hibernate视图。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/97dc543810b24106aff4793fcd1d1fe8.jpg)
打开数据库连接:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/9c21eb22917d4d1c14bb3ba7349634fa.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/2b9ff38dee3062da15f7efba77cf7dde.jpg)
然后,执行
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/61f3859a127e0d30d46ae66b286502e7.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/799dd0b44bd7d83d6c1dd83b4871c0b9.jpg)
自动生成几个文件:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/bee98e281fdd2989491fefac67ce208b.jpg)
并且,spring的applicationContext.xml自动加入
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/d54a0a39b70b2520001acb86c985b580.jpg)
然后,建立ftl页面,根据前面web.xml配置的freemarker设置,需要建立如下目录
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/60ef5f710bb0a9f90249ce3ae61b5e14.jpg)
先把页面逻辑处理下,打开struts-config.xml,然后进行如下操作
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/fcc4b7adc3584a2eb5880dc08de3f076.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/7dc174cf1364bd0620fba9e7f8119d24.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/3c468d2fcc6010e256ef0dc2308d959c.jpg)
继续加
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/ea718309aa1a1b07ccac59cc9b50dddd.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/79e052454dfd02c2f8474cf550e1cf28.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/a332c44866088c9e6f7bd9e8a7236f98.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/3b83022685f2304a52036b6ec0f89e46.jpg)
完成后效果如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/3fe8c38fb83722bef0a45d28ea62032d.jpg)
下面是3个页面:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/89f0acb0b363fb16edb6a53a803d544e.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/196191357294ea367e840fcd66e0440e.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/c34ff831da3854af52493ade8fd84f07.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/f28af0825b38390509e6772fdc2af05f.jpg)
这里注意下前2行,在freemarker中用struts标签。
前面说过action委托给spring做,许要在struts那加入
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/b6383e170d076d784100744eb2a95a07.jpg)
然后,action类需要修改下
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/ff3bb20d93986b9c8c147b7f9267700d.jpg)
下面的setter是为spring准备的。
struts配置那的action声明需要修改一下,说明用代理:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/8d9a53f5598392c761656eb4a76a6468.jpg)
然后在spring的applicationContext.xml加上:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/86d96baae9c1c644c819b38742ac7f65.jpg)
注意是用name,不是id。
发布,运行,结果抛了个错
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/7e43a731b2818d759fc8c3047281a8dd.jpg)
还好,问题不大,找到
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/ca546d0a10e6ebfbbfdf3ce4b00cdbbf.jpg)
加到WEB-INF/lib下就可以了。
开始测试
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/3c3dc62c7edfefac38681de1f7ebb0c2.jpg)
成功的话:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/4143150c2dbe77d8bd6dbe60fc61aac2.jpg)
否则:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/7181dfe0bb028fe86fbcdbc89416d569.jpg)
然后去数据库一看,郁闷,数据没进来,试了N久,最后发现spring里要定义个dataSource。原来sessionFactory的定义变为如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/19/c3b1f5b1d1966044357dd0b1d546d54b.jpg)
ok,一切正常。到这里,就写完了,只是为说明怎样用MyEclipse进行快速开发,毕竟平时做项目要的是进度,还要监管质量,有了MyEclipse,确实方便不少。
相关文章推荐
- 图解MyEclipse配置struts+hibernate+spring+FreeMarker
- 图解MyEclipse配置struts+hibernate+spring+FreeMarker
- 图解MyEclipse配置struts+hibernate+spring+FreeMarker
- 图解MyEclipse配置struts+hibernate+spring+FreeMarker
- 图解MyEclipse配置struts+hibernate+spring+FreeMarker
- 图解MyEclipse配置struts+hibernate+spring+FreeMarker
- 图解MyEclipse配置struts+hibernate+spring+FreeMarker
- 图解MyEclipse配置struts+hibernate+spring+FreeMarker【原创】
- 图解MyEclipse配置struts+hibernate+spring+FreeMarker
- 图解MyEclipse配置struts+hibernate+spring+FreeMarker http://www.cnblogs.com/zxub/archive/2006/08/03/466682.html
- 图解MyEclipse配置struts+hibernate+spring+FreeMarker
- 图解MyEclipse配置struts+hibernate+spring+FreeMarker
- 图解MyEclipse配置struts+hibernate+spring+FreeMarker
- 图解MyEclipse配置struts+hibernate+spring+FreeMarker【原创】
- 图解MyEclipse配置struts+hibernate+spring
- 图解MyEclipse配置struts+hibernate+spring
- 图解MyEclipse配置struts+hibernate+spring
- 图解MyEclipse配置struts+hibernate+spring
- MyEclipse配置struts+hibernate+spring
- JAVA SSH框架的配置(myeclipse(9)+tomcat(6.0.35)+struts(2.2.3)+Spring(3.0)+Hibernate(3.0))