SSH初识

 

图解



【1】SSH整合-基本环境配置

开发环境:myeclipse6.0+tomcat6.0+struts2.0+hibernate3.1+spring2.0+MySQL5.0

【1】新建工程项目,右键myeclipse->添加hibernate支持,注意要将相应的jar添加到web-inf文件夹下,防止以后转以后找不到相应的包文件,暂不配置hibernate的DB,使用spring进行管理

【2】同样添加spring的支持,勾选spring中的web开发的jar包,spring会自动生成applicationContext.xml的配置文件,不创建sessionfactory,稍后自己创建

【3】添加struts2的包,因myeclipse6.0中还没有集成了struts2的配置,因此需要自己添加到lib文件夹,在src下创建struts.xml文件,此为struts2必须的配置文件

文件头如下所示:

 

 

 

同时加入spring的配置信息

   

 

此时可能发生spring和hibernate的冲突,因其导入了版本不同的包,具体的可通过搜索查询

新建Mysql的数据库,将其编码设置为utf-8,以便兼容不同的语言,此后新建的jsp页面也以utf-8为基本编码

至此,基本环境配置完毕,可将项目配置到tomcat中进行检测,正常启动说明配置成功。

【2】SSH整合-分层代码实现

接着开始进行编码

【1】新建javabean,以user类为模板,

 

 

为每个属性生成get和set方法,这是spring要使用所必须的,以后要使用的类也一样

同时为此基本的Bean配置和编写此bean和数据库的映射文件,文件名为user.hbm.xml

内容如下:(hibernate具有反向工程映射功能,将数据库的实体映射为持久类以及相应配置文件和DAO类

 

 

【2】为struts添加国际化标准

在src中新建struts.properties  内容为struts.custom.i18n.resources=globalMessages

同时也在相同目录下新建globalMessages-en.properties和globalMessages-zh.properties文件

以zh文件内容为例

firstname=/u59d3
lastname=/u540d
age=/u5e74/u9f84

这样在以后页面当中使用如果浏览器的语言是中文的话就可以以中文的方式进行显示,英文的话则按照en的配置文件进行显示

当然要修改相应的页面标签,如下

<s:textfield name="user.firstname" label="%{getText('firstname')}"></s:textfield>

【3】新建user的dao操作

创建一个user的接口

 

 

 

之后定义一个impl类来实现此接口中的方法

部分代码如下:

 

 

可以使用hibernate中提供的方法来简化数据库的操作

【4】创建服务层代码

dao操作不能直接被action调用,要在中间添加服务层

新建一个service的接口

 

 

与dao类似,实现此接口

 

 

在此编写中服务层代码只是简单调用dao方法

服务依赖于spring将其注入,再调用dao进行操作

【5】编写action方法中的execute方法

 

 

在action中调用服务层的方法进行保存

【6】配置文件

struts.xml是控制前台控制的扭转

spring的则是bean之间的依赖关系和注入关系

【3】SSH整合-spring注入

【1】配置spring

在前面的基础上编写了DAO层,SERVICE层等的代码,现在需要通过spring的配置文件将各层连接并进行注入

首先先配置数据源

<!-- 数据源配置 -->

 

 

这也就是以前通过javabean等实现的连接数据库操作,spring是通过连接池进行数据库的连接的

接着配置与之相关的java类的关系

 

 

将其注入到sessionfactory当中

整个过程就是这样,然后将sessionfactory注入到DAO,DAO再注入到action当中,实现了从数据库到jsp页面的一套流程

下面配置dao层和服务层

 

 

注意:dao层是没有状态的,因此将其配置成singleton,默认的也是使用此方法

最后是注入到action当中

注意spring的配置文件当中的名称要和struts当中定义的class一样

见红色所示:

 

 

此时简单的一个SSH就基本完成了

加上前台的页面就可以看到结果了

【4】SSH整合-加入struts校验框架

struts2为我们提供了一套校验的框架,只要使用即可

在action下新建同名文件:  XXXAction-validation.xml ,往当中写入相应的校验信息,struts在页面提交的时候会自动在此文件当中去寻找相应的信息进行匹配

一个文件范例如下:SaveUserAction-validation.xml

 

 此文件中只配置了采用visitor的类型进行校验,如出现错误信息会在信息前添加user‘s 字段

然后在User类的文件夹下创建关于User的具体校验信息

范例如下:User.hbm.xml,注意文件名一定要符合规范

 

 

这里在强调一点:对于有状态的Action在配置的时候要将其配置成prototype,否则将会出现系列问题

典型的就是配置好之后第一次输入错误将正确的返回错误信息,第二次依然返回错误信息而无法提交

因为action默认的是singleton类型,所有只生成一个实例,而错误信息只要第一次产生便会存在

就算第二次输入的是正确的信息,依然有第一次的fielderror存在,因此表单仍然不会提交

至此,能为表单提供一个符合自己要求的校验框架了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值