- new java web project
- add struct capability(默认)
- 编辑structs-config.xml
建立并编辑userLoginSuccess.jsp
添加Form,ation and jsp,添加form属性userName,password,create jsp form /userLogin.jsp(完成后生成aciton,form和一些类库)
编辑userLogin.jsp
编辑index.jsp
新建并编辑logout.jsp - run as 3测试一下登录情况
- add Hibernate capability(添加类库和jar,必须选择第二项copy**,否则与Spring整合会出现冲突,第二页默认,第三页选择数据库连接如mysql,
第四页new一个名字为dao的java包,生成的代码将纺织dao包内和HibernateSessionFactory,为了与spring整合此处选择不创建sessionfactory) - add Spring capability(第一页,选择类库AOP+Core+Persistence Core+Web(为将Spring整合structs必选项),jar选择第二项copy**否则与Hibernate整合出现冲突;第二页默认,第三页默认sessionfactory)
生成applicationContext.xml加载类库 - Spring整合Hibernate
进入DB explorer,选择需要使用的数据库表,右击Hibernate Inverse Engineering。第一页 会自动选择DAO type="Spring DAO" - 在代码中具体使用标注形式整合spring和hibernate
spring配置文件修改头并加入<tx: annotation-driven transaction-manager="transactionManger" proxy-target-class="true"/>
其中需要建立transactionManger bean基本是模板。 - 在*DAO.java中加入 @Transactional标注,导入相应包
- 测试Run as3,刷新数据库有变化(到此spring整合hibernate成功)
- 开发业务层代码*Manager.java(一般放在service包中),注入DAO(以*DAO作为属性)set*() ,get*(), findby*(),check*()
- 业务层代码需要在Spring中进行配置
- 测试*Manager,run as 2java application
- 未测试spring整合structs,为action增加message属性,并生成get*(),set*()
- 在structs配置文件增加,plug in用于启动spring,controller用于覆盖默认的action处理方式
- 修改spring配置文件,将action作为一个bean其中。name=“/userLogin“必须与action-mapping中对应
- run as 3 测试spring与structs是否整合成功
- spring整合structs其他整合方法
action support解决 - action与业务层代码*manger()整合在一起
解决中文显示乱码问题,需要加上过滤器,
并将filter加入到web.xml的开头 - 向action注入*Manager属性(需要导入*Manager类)
- 将登录检查的硬编码改成数据库连接
- 在spring配置文件中,action bean中增加属性*Manager.
- reploy项目,使用mysql数据库中真实的用户名密码登录进行测试
第一个是加载 Spring 的BeanFactory
第二个是设法代替 Struts 配置文件中的 Action 类的类型(或者类似的策略例如替换其核心的 Processor)
第三个是 Spring 的 Bean 配置文件中必须配置出来 name 和Struts 的 Action 路径(path)相同的 Action bean 的声明。