1.在查询分析器中创建好数据库以及数据表
2.在 Eclipse 中配置好JDBC连接以准备连接数据库
3.新建一个web工程,依次添加 struts,spring,hibernate,注意 spring 添加的是1.2.8或1.2版本,并修改 spring 的配置文件 applicationContext.xml的存放路径为webRoot/WEB-INF/下,并修改其名称为applicationContext_*.xml,* 号可替代为dao,command,action,不要勾选为Hibernate生成配置文件和sessionFactory的复选框
4.通过数据表生成对应于数据表的Java类以及映射文件,检查这几个映射文件的存放地址是否已经配置到了 applicationContext_*.xml文件中,如果没有就配置进去,配置内容如下:
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
......
<property name="mappingResources">
<list>
<value>com/konglong/ssh/form/Books.hbm.xml</value>
<value>com/konglong/ssh/form/Logintable.hbm.xml</value>
</list>
</property>
......
</bean>
5.将 spring 的 Servlet 和 applicationContext_*.xml 文件的存放路径配置到 web.xml 文件中,配置内容如下:
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml </param-value>
</context-param>
6.编写 BaseForm 类,基本结构如下:
public class BaseForm extends ActionForm
{
//在该类中存放所有 form 的公共属性
protected Integer id;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
7.编写 IDAO 接口和该接口的适配器 DAOAdapter,他们的基本结构如下:
public interface IDAO {
public Map create(BaseForm form) throws Exception;
public Map create(List list) throws Exception;
......
}
public abstract class DAOAdapter extends HibernateDaoSupport implements IDAO {
public Map create(BaseForm form) throws Exception {
getHibernateTemplate().save(form);
return null;
}
public Map create(List list) throws Exception {
for(int i = 0; i < list.size(); i++)
{
BaseForm form = (BaseForm)list.get(i);
getHibernateTemplate().save(form);
}
return null;
}
......
}
8.编写 ICommand 接口和该接口的适配器 CommandAdapter,他们的基本结构如下:
public interface ICommand {
//注意在这里老师是将 IDAO 接口中的方法声明直接拷贝到这的
public Map create(BaseForm form) throws Exception;
public Map create(List list) throws Exception;
}
public abstract class CommandAdapter implements ICommand {
protected IDAO daoOne;
protected IDAO daoTwo;
public void setDaoOne(IDAO daoOne) {
this.daoOne = daoOne;
}
public void setDaoTwo(IDAO daoTwo) {
this.daoTwo = daoTwo;
}
}
在实际应用中肯定存在一个 command 中依赖多个 dao 的情况,有可能是2个,3个或者5个,但我们在 command 的适配器中一般
只定义 2个或3个 dao ,如果某个具体 command 类依赖的 dao 的数量超过适配器中定义的个数那么自己在这个 command 类添加
所需的 dao ,然后自己去依赖注入
9.编写具体的 dao 类去继承 DAOAdapter 类,然后在编写具体的 command 类去继承 CommandAdapter 类
10.修改第 4 步中我们手动生成的对应于数据表的 javaBean 类,让他们都去继承 BaseForm 变成 FormBean,例如:
public class Books extends BaseForm {
......
}
11.在 struts-config.xml 文件中配置这些 FormBean
12.编写基类BaseAction,并让它去继承Action,例如:
public class BaseAction extends Action {
protected ICommand command;
public ICommand getCommand() {
return command;
}
public void setCommand(ICommand command) {
this.command = command;
}
}
13.编写具体的Action类继承基类BaseAction,并在 struts-config.xml 文件中配置:
<action path="/login"
name="loginForm"
type="com.konglong.ssh.action.LoginAction" >
......
</action>
在这里我们可以顺便将创建 Action 对象的工作交由 spring 容器来做,配置内容如下:
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"></controller>
进行了上述处理后,<action...>元素中的 type 属性可要可不要。
14.在 applicationContext_dao.xml 文件中配置具体的 dao 类,例如:
<bean id="bookDao" class="com.konglong.ssh.dao.BookTableDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
在 applicationContext_command.xml 文件中配置具体的 command 类,例如:
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="proxyTemplate"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<bean
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="interceptorNames">
<list>
<value>proxyTemplate</value>
</list>
</property>
<property name="beanNames">
<list>
<value>loginCommand</value>
</list>
</property>
</bean>
<bean id="loginCommand" class="com.konglong.ssh.command.LoginCommand">
<property name="daoOne">
<ref bean="loginDao"/>
</property>
<property name="daoTwo">
<ref bean="bookDao"/>
</property>
</bean>
在 applicationContext_action.xml 文件中配置具体的 action 类,例如:
<bean name="/login" class="com.konglong.ssh.action.LoginAction">
<property name="command">
<ref bean="loginCommand"/>
</property>
</bean>
15.编写 jsp 页面,设置好提交路径,跳转路径。
第二部分:Tiles 框架的配置
在 WEB-INF 上单击右键-->选择 “New”-->XML(Advanced Templates)-->指定文件名,例如:tiles_defs.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">
<tiles-definitions>
<definition name="tilesDefinition" path="/welcome/layout.jsp">
<put name="header" value="/welcome/header.jsp"/>
<put name="menu" value="/welcome/menu.jsp"/>
<put name="content" value="/welcome/content.jsp"/>
<put name="footer" value="/welcome/footer.jsp"/>
</definition>
<definition name="tilesAdminPage1" extends="tilesDefinition">
<put name="menu" value="/admin/menu.jsp"/>
<put name="content" value="/admin/page1.jsp"/>
</definition>
.........
</tiles-definitions>
然后在 struts-config.xml文件中将 tiles 框架作为插件引入 struts 框架中:
<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property property="definitions-config"
value="/WEB-INF/tiles-defs.xml"/>
</plug-in>
最后在 struts-config.xml文件中配置利用 tiles 框架组合的页面以供使用:
<action path="/tilesDefinition"
parameter="tilesDefinition"
type="org.apache.struts.actions.ForwardAction">
</action>
<action path="/admin/tilesAdminPage1"
parameter="tilesAdminPage1"
type="org.apache.struts.actions.ForwardAction">
</action>
或者在 action 元素中将其配置成 Forward:
<action
......>
<forward name="index" path="/index.jsp"></forward>
<forward name="tilesAdminPage1" path="tilesAdminPage1"></forward>
<forward name="tilesUserPage1" path="tilesUserPage1"></forward>
</action>
注意在配置 tiles 页面时,设置 path 属性值时不要以 "/" 开头否则报错。
SSH框架的搭建有很多中,结合实际情况选中一个最优的框架,对整个项目都会起到已个事半功倍的效果。
分享到:
相关推荐
NULL 博文链接:https://robinsoncrusoe.iteye.com/blog/797961
ssh(Struts,Hibernate,spring)框架的搭建的步骤详细过程讲解和步骤!
ssh框架的简介说明,搭建的详细步骤,清晰,明确
详细描述SSH框架搭建步骤,提供给新手参考
一次下载,SSH2框架的搭建步骤 全部文档资料都有。 对于新手来说,独自完成一个完整正确的SSH框架...myeclipse ssh框架搭建教程 SSH框架总结 Myeclipse10下搭建SSH框架(图解)Struts2.1 + Spring3.0 + Hibernate3.3等
Struts2+Spring+Hibernate是J2EE的最新流行框架。本篇是搭建这个框架的经验总结,有很多人搭建这个框架总会遇到大大小小的问题,所以我就决定总结一下我的搭建过程。
简单的框架搭建 有注册页面和增删改查功能
SSH框架搭建步骤很多,但是不难,因为MyEclipse已经帮我们做了大部分的工作,如果纯手动添加这个框架的话,那真是够复杂的了。不过涉及的知识挺多的,适合有一定基础的人。下面详细介绍一下SSH框架的搭建步骤并且...
eclipse搭建SSH框架详解,详细阐述eclipse下搭建SSH web项目的过程
SSH框架是Struts2.3.8+Spring3.2.16+Hibernate4.1.7,带junit4单元测试,加入bootstrap css 框架和Jquery,利用注解的方式使用hibernate和Spring,连接数据库oracle 12c。
有图有真相 一步一步教您如何搭建ssh框架
这是一个简单的SSH框架搭建例子,有需要的同学们下载来看看吧,里面包含WORD步骤文档。,
ssh三大框架搭建详细步骤及实例,导入到myeclipse中可直接运行查看效果
ssh框架搭建步骤,具体详细步骤及涉及到的jar包资源
ssh框架手动搭建PPT 含jar包名称 无jar文件 含jar的作用
SSH框架的工作原理及搭建步骤 SSH框架的工作原理及搭建步骤
SSH的搭建 ppt 有图片 详细的步骤
ssh框架步骤详细搭建,myeclipse的ssh框架搭建
SSH开发框架搭建步骤,Hibernate+Spring+Struts2,mySQl
SSH框架搭建步骤详细的介绍附加截图. 1.jar 包下载 2.struts 配置 3.hibernate配置 4.spring配置