SSH框架的搭建步骤

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框架的搭建有很多中,结合实际情况选中一个最优的框架,对整个项目都会起到已个事半功倍的效果。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值