本文使用的IDE是MyEclipse6.5,spring2和hibernate3.1根据向导就可以很容易的加入到应用中去,只有 struts2需要手工的加入。下面我一步一步的帮大家整合struts2+spring2+hibernate3.1:
1.新建一Web Project:Project Name随便命名,这里填demo,J2EE Specification Level选择Java EE 5.0
2.定位到项目根节点,菜单:MyEclipse->Project Capabilities->Add Hibernate Capabilities,我这里选择的是Hibernate3.1,使用默认的勾选值,下一步,再下一步,选择刚才建立的数据源,下一步,选择一个 package,完成。
3.开始测试hibernate是否可用,编写代码:
T1.class
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->
public
class
T1 {
public
void
insert()
{
SessionFactory factory
=
new
Configuration().configure().buildSessionFactory();
Session session
=
factory.openSession();
Transaction trans
=
session.beginTransaction();
QaAccount account
=
new
QaAccount();
account.setAccountName(
"
abc
"
);
account.setAccountPwd(
"
123
"
);
account.setAccountPoint(
0
);
session.save(account);
trans.commit();
session.close();
}
}
t1.jsp
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->
<%
T1 t1
=
new
T1();
t1.insert();
%>
试试看吧,应该可以用Hibernate往数据库插入数据了。
4.加入Struts2,从网上下载Struts2的包,下载地址:http://apache.mirror.phpchina.com/struts/binaries/struts-2.0.11.2-all.zip
把Struts2包里的apps/struts2-blank-2.0.11.2.war ->WEB- INF/lib里面的5个包拷贝到项目WebRoot/WEB-INFO/lib中。
然后修改web.xml,添加Struts2的过滤器,整个web.xml的内容如下(绿色字为新增内容):
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->
<?
xml version="1.0" encoding="UTF-8"
?>
<
web-app
version
="2.5"
xmlns
="http://java.sun.com/xml/ns/javaee"
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation
="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<
welcome-file-list
>
<
welcome-file
>
index.jsp
</
welcome-file
>
</
welcome-file-list
>
</
web-app
>
在src目录添加struts.xml文件,内容如下:
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->
<?
xml version="1.0" encoding="UTF-8"
?>
<!
DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"
>
<
struts
>
<
constant
name
="struts.enable.DynamicMethodInvocation"
value
="false"
/>
<
constant
name
="struts.devMode"
value
="false"
/>
<
package
name
="default"
namespace
="/"
extends
="struts-default"
>
<!--
Add actions here
-->
</
package
>
</
struts
>
现在开始使用struts2,做一个最简单的应用:
添加一个类T2.class,内容:
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->
package
com.abc.action;
import
com.opensymphony.xwork2.ActionSupport;
public
class
T2
extends
ActionSupport {
private
String message;
@Override
public
String execute()
throws
Exception {
setMessage(
"
Hello World!this is a test
"
);
return
SUCCESS;
}
public
String getMessage() {
return
message;
}
public
void
setMessage(String message) {
this
.message
=
message;
}
}
添加一个jsp页面t2.jsp:
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->
package
com.abc.action;
import
com.opensymphony.xwork2.ActionSupport;
public
class
T2
extends
ActionSupport {
private
String message;
@Override
public
String execute()
throws
Exception {
setMessage(
"
Hello World!
"
);
return
SUCCESS;
}
public
String getMessage() {
return
message;
}
public
void
setMessage(String message) {
this
.message
=
message;
}
}
现在需要把T2.class和t2.jsp联系起来,这里需要修改struts2.xml配置文件,修改后的struts2.xml内容为(绿色字 为新增内容):
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->
<?
xml version
=
"
1.0
"
encoding
=
"
UTF-8
"
?>
<!
DOCTYPE struts PUBLIC
"
-//Apache Software Foundation//DTD Struts Configuration 2.0//EN
"
"
http://struts.apache.org/dtds/struts-2.0.dtd
"
>
<
struts
>
<
constant name
=
"
struts.enable.DynamicMethodInvocation
"
value
=
"
false
"
/>
<
constant name
=
"
struts.devMode
"
value
=
"
false
"
/>
<package name="com.abc.action" namespace="/" extends="struts-default">
<action name="t2" class="com.abc.action.T2">
<result>/t2.jsp</result>
</action>
<!-- Add actions here -->
</package>
</
struts
>
重启一下tomcat,在浏览器中浏览:http://127.0.0.1:8080/demo/t2.action , 这时应该可以显示效果了
5.最后开始添加Spring了,菜单:MyEclipse->Project Capabilities->Add Spring Capabilities
勾选:Spring 2.0 AOP Libraries
Spring 2.0 Core Libraries
Spring 2.0 Persistence Core Libraries
Spring 2.0 Web Libraries
需要其他库的话,可以以后再添加。一路next,完成向导。
然后就是最后的集成部分了,呼呼,终于快写完了。
①把src/applicationContext.xml 剪 贴到WebRoot/WEB-INF/applicationContext.xml
②修改web.xml,完整内容为(绿色字为新增内容):
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->
<?
xml version="1.0" encoding="UTF-8"
?>
<
web-app
version
="2.5"
xmlns
="http://java.sun.com/xml/ns/javaee"
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation
="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<
filter
>
<
filter-name
>
struts2
</
filter-name
>
<
filter-class
>
org.apache.struts2.dispatcher.FilterDispatcher
</
filter-class
>
</
filter
>
<
filter-mapping
>
<
filter-name
>
struts2
</
filter-name
>
<
url-pattern
>
/*
</
url-pattern
>
</
filter-mapping
>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<
welcome-file-list
>
<
welcome-file
>
index.jsp
</
welcome-file
>
</
welcome-file-list
>
</
web-app
>
③修改struts.xml,添加内容:
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->
<
constant
name
="struts.objectFactory"
value
="spring"
/>
④添加struts2的spring plugin到项目中,一定要加,不然会出错。
文件名为struts2-spring-plugin-2.0.xx.x.jar,struts2的完整包里面有
6.最后再加入log4j
这是一个最简单的log4j配置文件log4j.properties
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->
log4j.rootCategory
=
DEBUG, stdout
log4j.appender.stdout
=
org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout
=
org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern
=%
5p (
%
F/:
%
L)
-
%
m
%
n
这个文件要放到src目录里
现在struts2+spring2+hibernate3.1 的 整合就完成了。