导读:
前一阵对SS2H整合进行过小结。今天把SS1H整合的过程小结一下。
其中主要的区别在于Struts的版本不同,Struts 2虽然吸收了部分Struts 1的优点,并且在使用的过程中更加的灵活方便,但是因为它的主要核心是WebWork,所以导致在整合和使用的过程中都有着不小的改动。
在这里特别说明一点。本次S+Struts1+H小结完全是和上次S+Struts2+H对比着进行的。也就是说,上次小结所描述过的地方,在这里不会再重复描述。尤其是对于Hibernate部分来说,和Struts2时一样,直接省略掉了。
若带来不便,请谅解!
在此特别附上:
Spring 3.0 + Struts 2.1 + Hibernate 3.3 框架整合小结的URL地址,以便大家对比参照:
http://maxpin.iteye.com/blog/1151840
进入正题,本次同样是采用添加功能支持的方式进行框架整合:
( MyEclipse à add xxxx capabilities )
操作步骤仍然是 Spring à Hibernate à Sturts 1.3
创建Web Project略。
一、Spring
1. 添加jar包到项目中
与Struts 2不同的地方在于 需要额外 导入Spring 3.0 Web Libraries 这一架包。
此jar包在后面配置struts-config.xml文件时会用到。这里不多做解释。
为了方便,还选择了将jar包拷贝到了WEB-INF/lib目录下。
2. 创建Spring的bean配置文件applicationContext.xml
步骤相同(略)。
二、Hibernate
所有步骤都相同(略)。
三、Struts 1.3(手动搭配)
1. 选择项目中使用的Struts 1.3 版本 和 URL 访问的路径模式。
设置应用程序资源文件存放的位置,之后点击Finish即可。
2、自定义Action类,继承动态Action类:DispatchAction
例如:这里使用UserAction为自定义Action类名,想要实现的效果是登录功能。
在自定义的UserAction类中,编写完成登录功能的doLogin方法。
3、创建FormBean,这里命名为UserForm,继承ActionForm类。
在类中实例化一个Userinfo的实体类对象,生成getter&setter方法,便于对数据的存取操作。
需要注意的是,这里很容易忘记new出对象。
至此,可以看到目前项目的目录结构如图所示:
4、自定义Action,FormBean创建完毕后,下一步可以进行struts-config.xml文件的配置了。
<form-bean>中:
name用于定义一个ActionForm。
type属性是指定ActionForm的完全限定类名。
<action>中:
name属性用于关联FormBean的name。
path属性指定访问这个Action的路径,以“/”开头,不需要加“.do”。
type属性指定这个Action的类名,这里使用DelegatingActionProxy。
parameter属性的值用于在页面调用此action时确定哪个方法被调用。
<forward>中:
name属性是在action类中定义好的页面逻辑名。
path属性指定页面的物理路径,对应于页面逻辑名。
<plug-in>中:
className属性指定上下文加载插件。
子标签<set-property>中:
property属性定义本地上下文配置信息。
value属性指定Spring的配置文件applicationCntext.xml的所在位置。
5、接下来在Spring的applicationContext.xml文件中配置Action的Bean,这时不再使用id而是使用name,并且name的值就是第4步操作中struts-config.xml里的action元素中的path的值。注意不要忘记“/”。
6、页面调用
method参数名来自于第4步操作时的struts-config.xml配置文件中action的parameter=method
相对应的参数值代表着此Action类中哪个方法被调用。
下图表示此表单提交时会调用userAction类中的doLogin方法来处理请求。
这次总结的有些仓促。
着重于整合过程中的部署和配置步骤,忽略了大部分jar包、属性或语义上的解释。
有兴趣研究的童鞋自行查阅相关API吧。
其余的我抽时间再完善,若有描述不正确的位置,欢迎火速告知。