JSP学习笔记(三十三):整合struts2+spring2+hibernate3.1
本文使用的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
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
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的内容如下(绿色字为新增内容):
<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文件,内容如下:
<!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,内容:
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:
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内容为(绿色字为新增内容):
<!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" />
<constant name="struts.objectFactory" value="spring" />
<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,完整内容为(绿色字为新增内容):
<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,添加内容:
④添加struts2的spring plugin到项目中,一定要加,不然会出错。
文件名为struts2-spring-plugin-2.0.xx.x.jar,struts2的完整包里面有
6.最后再加入log4j
这是一个最简单的log4j配置文件log4j.properties
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的整合就完成了。