注意事项:1.如果你用的是MyEclipse10版本,切记先调整MyEclipse自带的struts2的类库,必须删除antlr2.7.2包,否则与hibernate的antlr包冲突。移除方法:选择菜单栏window-》preference-》搜索struts2-》选择antlr2.7.2-》点击remove
2.myeclipse10.7添加了spring3.1和hibernate4的支持,本文只适用于struts2.1+spring3.0+hibernate3.3,如果使用更高版本,可能出现包冲突和MyEclipse支持性上的bug。
1,新建web project
2.选择Javaee 6,其他按默认配置,点‘finish’完成创建。
3.右键点击项目名称,在弹出菜单中选择myeclipse-》add spring capabilities
4,选择srping3.0版本;选择 Spring 3.0 AOP Libraries;Spring 3.0 Core Libraries;Spring 3.0 Persistence Core Libraries;Spring 3.0 Persistence JDBC Libraries 以及 Spring 3.0 Web Libraries(图中未显示)五个类库,选择Copy checked Library contents to project folder(TLds always copied),将类库添加到lib目录中。点击Next。
5.选择specify new or existing...单选框选择New,Folder选择WebRoot/WEB-INF,点击finish完成spring框架的添加(完成后spring框架添加后的WebRoot和WEB-INF文件夹上会有一个s图标)。
6.接下来添加struts框架:右键项目名,在弹出菜单中选择MyEclipse->Add Struts Capabilities
7.版本选择Struts2.1,其他按默认配置,点击Next
8.选择Struts 2 Core Libraries 和 Struts 2 Spring Libraries两个类库,点击finish完成Struts2框架的添加。
9.如果这时发布项目到tomcat上并启动服务器会报错,因为还需要注册spring监听器,实现spring对struts的托管:在web.xml中的</web-apps>(即最后一个结束标签)前添加如下代码:
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
添加之后再启动服务器,在浏览器地址栏输入localhost/ssh,首页能够正常打开,说明struts2和spring框架已完成正确添加。
10.下面添加hibernate3.3框架,在添加hibernate3.3框架之前,先创建一个新的数据库连接驱动:选择界面右上角的MyEclipse Database Explorer persispective,进入数据库视图.
11.在左边的DB Browser视图中,点击右键,在弹出菜单中选择new。
12.填入数据库的url、用户名、密码,点击add jars加入java连接mysql的驱动jar包,点击finish完成。
13.然后添加hibernate3.3框架:右键选择项目名,在弹出菜单中选择MyEclipse->Add Hibernate Capabilities。
14.选择hibernate3.3;选择Copy checked Library Jars to project folder and add to build-path,将类库复制到到lib目录中。其他选择默认配置,点击next。
15.选择Spring configuration file,由spring托管hibernate。点击next。
16.选择Exisisting Spring configuration file,点击next.
17.DB Driver选择刚才建立的ssh驱动,其他选择默认配置,点击next。
18.取消勾选 Create SessionFactory class,点击finish完成hibernate3.3框架的添加。
19.这时ssh框架已经全部添加完,下面将数据库反向生成实体类:进入MyEclipse Database Explorer视图,双击刚才建立的ssh驱动,启动连接(首次连接需要输入密码)。在admin表上右击,选择Hibernate Reverse Engineering
20。如图选择,点击finish完成反向类的生成。
21.这是ssh的配置工作已经完全完成,完成的工程目录如下图所示:
22.下面编写一个登陆验证的模块:
在index.jsp中添加一个表单,代码如下:
<form action="login.action" method="post">
<input type="text" name="id">
<input type="password" name="password">
<input type="submit" value="提交">
</form>
23.在src目录中新建一个包,命名为“action”。在action中新建一个类,命名为LoginAction.java
LoginAction.java代码如下:
package action;
import org.model.Admin;
import org.model.AdminDAO;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
private int id;
private String password;
private AdminDAO adminDAO;
public AdminDAO getAdminDAO() {
return adminDAO;
}
public void setAdminDAO(AdminDAO adminDAO) {
this.adminDAO = adminDAO;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String execute(){
Admin admin = adminDAO.findById(id);
if (admin.getPwd().equals(password)) {
return SUCCESS;
} else {
return ERROR;
}
}
}
24.在struts.xml中添加action,添加后的struts.xml代码如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="login" class="Login">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
24.在applicationContext.xml中添加bean,由spring来注入action实例。添加的代码如下:
<bean id="Login" class="action.LoginAction">
<property name="adminDAO">
<ref bean="AdminDAO"/>
</property>
</bean>
25.在webroot目录下新建success.jsp和error.jsp
26.启动服务器,在浏览器中打开首页,输入用户名和密码,如果正确则跳转到success.jsp,如果错误则跳转到error.jsp。
至此,一个ssh2框架的例子就完成了。