您的位置:首页 > 编程语言 > Java开发

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

2010-01-19 13:48 531 查看
本人学习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(其中.action的a必须小写)

再有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>

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

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

<!-- 定义Hibernate的sessionFactory -->

(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就是第四个Bean中ref的值,必须是同一名字,不然联系不起来、同样的这个Property中name则表示的是调用接口类(Dao)对象名,Ref指向接口类(Dao)的ID属性了。

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

接口层实现的是业务层和数据层的联系,他可以直接调用数据层的实体类。通过Hibernate中的实体类和相应的配置文件就能实现与数据库的联通。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐