Struts,hibernate,Spring整合开发各层之间联系的配置说明(初学者值得看下)

本人学习Struts,hibernate,Spring整合开发已经有五六个月了,现在基本上对这种技术有了初步的了解应用,因为我们是为了开发一个项目才去学这门技术的,而现在这个项目也差不多完成了一半,学过这门技术的人都知道,初学时最难搞懂得就是把各层联系起来的配置文件的内容,配置代码的具体解析了,记得我刚学的时候也想找一个能概括说明的资料,但是一直零零散散的,想理解对初学者来说有点难度了,以下是我根据自己初学的情况(根据当时自己想找的内容)认为能帮初学者理清关系思路有所帮助而整理的资料,可能有些术语说的不是很准确,但是能看懂就好,呵呵。

显示(xx.jsp页面)--àStruct中的Action --à业务层(Service ---à 接口(Dao

--à实体类 ---->数据库

 

JSP页面和Action类之间的联系是通过Struts.xml文件配置来实现连接的,如用下面代码说明一下:

 

如有以下JSP页面的部分代码:

<s:form action="projectPublish.action" method="post">

    <table align="center">

<tr><td><s:textfield label="发布人用户ID" name="projectPublish.userID" /></td></tr>

。。。。。。。。。。。。。。。。。。。。。。。

。。。。。。。。。。。。。。。。。。。。。。

      name="projectPublish.projectPlanURL" /></td></tr>

    <tr><td><s:textfield label="备注" name="projectPublish.remark" /></td></tr>

    <tr><td><s:submit value="提交" /></td></tr>

    </table>

    </s:form>

 

注意一下form属性中的action的值是projectPublish.action(其中.actiona必须小写)

 

再有Struts.xml中的有关代码:

<action name="projectPublish" class="ProjectPublishAction" method="savePublish">

    <result name="success">/admin/project/RegularMember/publishsavesuccess.jsp

</result> 

<result name="error">/error.jsp</result>        

</action>

以上代码中actionnameclass就是连接两者之间关系的重点了,name属性表示的是JSP页面中action的值了(至于为什么这样定义自己看书查资料就行,这里不说明,我想这个方面的知识很容易找到)。而class属性表示的就是StrutsAction类的“代表‘名字了。至于怎么把具体在那个路径下的Action类和这个”代表“名字联系起来则会在下面的Spring配置文件(applicationContext.xml)中说明。上面Action中还有一个method属性。这个属性是说明你JSP页面提交的数据交给Action类中哪个方法执行,他的值就是方法名,比我这个JSP页面提交的数据是由Action类中的savePublish()方法执行。而执行后返回什么字符跳转到哪个页面。如,我Action类中savePublish()方法执行返回结果字符为”success“,则跳转到publishsavesuccess.jsp页面。

下面说的就是Struct中的Action ,业务层(Service), 接口(Dao), 实体类之间的联系配置了,主要是在Springl配置文件applicationContext.xml)里实现。

<!-- 定义HibernatesessionFactory -->

    1<bean id="sessionFactory"    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

       <!-- 指定数据源   -->     

       <property name="dataSource">

           <ref bean="sqlserver" />

       </property>

<!--依赖注入 -->

    2<bean id="Project_PublishDao" class="org.nbu.lab619.dao.impl.Project_PublishDaoImpl" scope="prototype">

       <property name="sessionFactory">

           <ref local="sessionFactory" />

       </property>

    </bean>

    3<bean id="Project_PublishService" class="org.nbu.lab619.service.impl.Project_PublishServiceImpl" scope="prototype">

       <property name="projectPublishDao" ref="Project_PublishDao" />

    </bean>   

    4<bean id="ProjectPublishAction" class="org.nbu.lab619.action.admin.project.ProjectPublishAction" scope="prototype">

       <property name="projectPublishService" ref="Project_PublishService" />

    </bean>   

以上的第四个Bean中的id就是上面讲过的Action”代表“名字了。也就是Strut.xml文件中class值,而接下来的class指向的就是具体的执行Action类的路径和真正的名字,这样一来就实现了JSP页面和Action类的联系了。而Property中的name则表示的是Action类中调用业务层(Service)中的对象名,Ref指向业务层的id属性了。

而第三个Bean就是实现Action类与业务层(Service)之间的联系了,bean中的id就是第四个Beanref的值,必须是同一名字,不然联系不起来、同样的这个Propertyname则表示的是调用接口类(Dao)对象名,Ref指向接口类(Dao)的ID属性了。

第二个Bean实现业务层和接口层的联系。,bean中的id就是第三个Beanref的值,必须是同一名字,不然联系不起来、同样的这个Propertynameref基本上是基本格式了。

接口层实现的是业务层和数据层的联系,他可以直接调用数据层的实体类。通过Hibernate中的实体类和相应的配置文件就能实现与数据库的联通。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值