读书人

SSH调整实例

发布时间: 2012-08-30 09:55:54 作者: rapoo

SSH整合实例

SSH的学习已经有一段时间了,今天心血来潮做了个简单的注册页面的整合,下面给大家讲讲我是怎么做的吧,有缺点还请大家多多指教啊。

1.新建一个Web Project:SSH调整实例
2.为Project增加Struts功能:SSH调整实例这里面需要选择的包有5个,除了图中的包以外还有一个Spring3.0 web Libraries.点击next后,选择spring配置文件的放置地点,我选择把它放到了WEB-INF下。
3.为Project增加Spring功能:SSH调整实例SSH调整实例
4.为Project增加Hibernate功能:SSH调整实例SSH调整实例
SSH调整实例SSH调整实例这边我们只选择一个包,就是hibernate的核心包。?之后选择第二个单选按钮,然后我们不再创建新的Spring配置,而是使用已经存在的Spring配置文件,SessionFactory Id:就是sessionFactory不改了。之后选择数据库时,使用了我事先配置好的mysql数据库。再点击Next,会出现一个Create SessionFactory界面,我们不勾选,直接Finish。
5.切换到Myeclipse Database Exploer界面,使用Hibernate反向工程。SSH调整实例SSH调整实例SSH调整实例
在第一幅图的table2上右击,选择Hibernate的反向工程,然后出现第二幅图的界面,勾选情况如图,下一步后出现第三幅图,我们给ID那个设置为Native,目的是表述向数据库中插入一条记录,数据表主键是从哪里来的,native表示由数据库提供。之后下一步默认就好,点击完成。然后我们把自动生成的com.suda.orm中的Table2.java修改为User.java,同时在Table2.hbm.xml中修改对应的地方。
6.新建一个package,com.suda.dao。在这个里面我们创建一个接口,UserDao,和一个接口的实现类Java代码?
  1. package?com.suda.dao;??
  2. ??
  3. import?com.suda.orm.User;??
  4. ??
  5. public?interface?UserDao?{??
  6. ????public?void?save(User?user);??
  7. }??
?Java代码?
  1. package?com.suda.dao;??
  2. ??
  3. import?org.springframework.orm.hibernate3.support.HibernateDaoSupport;??
  4. ??
  5. import?com.suda.orm.User;??
  6. ??
  7. import?com.suda.dao.UserDao;??
  8. ??
  9. public?class?UserDaoImpl?extends?HibernateDaoSupport?implements?UserDao{??
  10. ??
  11. ????public?void?save(User?user)?{??
  12. ????????try?{??
  13. ????????????this.getHibernateTemplate().saveOrUpdate(user);??
  14. ????????}?catch?(Exception?e)?{??
  15. ????????????e.printStackTrace();??
  16. ????????}??
  17. ??????????
  18. ????}??
  19. ??????
  20. }??
?我们的实现类我们要让他继承HibernateDaoSupport类。
7.创建Action,Form,JSPSSH调整实例SSH调整实例我给她命名为registerForm,使用的是Dynamic FormBean。然后创建了两个属性,username,password,JSP页面就使用默认创建在form/register.jsp。下一步也默认。
8.?配置struts-config.xml文件,将Struts交给Spring管理?a) 加入插件 (message-resources标记下)Xml代码?
  1. <plug-in?className="org.springframework.web.struts.ContextLoaderPlugIn">??
  2. ??
  3. ????<set-property?property="contextConfigLocation"???
  4. ??
  5. ??????????????value="/WEB-INF/applicationContext.xml"?/>??
  6. ??
  7. </plug-in>??
??b) 将Action类移交(message-resources标记上)
Xml代码?
  1. <controller?processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/>??
?9.编写我们的Aciont处理方法:

?

Java代码?
  1. public?class?RegisterAction?extends?Action?{??
  2. ????UserDao?userDao;??
  3. ????User?user=new?User();??
  4. ????public?ActionForward?execute(ActionMapping?mapping,?ActionForm?form,??
  5. ????????????HttpServletRequest?request,?HttpServletResponse?response)?{??
  6. ????????DynaActionForm?registerForm?=?(DynaActionForm)?form;//?TODO?Auto-generated?method?stub??
  7. ????????String?username=registerForm.getString("username");??
  8. ????????String?password=registerForm.getString("password");??
  9. ????????ActionMessages?errors=new?ActionMessages();??
  10. ????????while(true){??
  11. ????????????if?(username.length()==0||password.length()==0)?{??
  12. ????????????????errors.add("empty",new?ActionMessage("content_empty"));??
  13. ????????????????break;??
  14. ????????????}??
  15. ????????????if?(username.length()>8)?{??
  16. ????????????????errors.add("username",new?ActionMessage("username_wrong"));??
  17. ????????????}??
  18. ????????????if?(password.length()<6)?{??
  19. ????????????????errors.add("password",new?ActionMessage("password_wrong"));??
  20. ????????????}??
  21. ????????????break;??
  22. ????????}??
  23. ????????this.saveErrors(request,?errors);??
  24. ????????if?(errors.isEmpty())?{??
  25. ????????????user.setUsername(username);??
  26. ????????????user.setPassword(password);??
  27. ????????????userDao.save(user);??
  28. ????????????return?mapping.findForward("success");??
  29. ????????}else?{??
  30. ????????????return?mapping.getInputForward();??
  31. ????????}??
  32. ????}??
  33. ????public?UserDao?getUserDao()?{??
  34. ????????return?userDao;??
  35. ????}??
  36. ????public?void?setUserDao(UserDao?userDao)?{??
  37. ????????this.userDao?=?userDao;??
  38. ????}??
  39. ??
  40. }??

?

?

?

10.在Struts-config.xml中增加跳转:Xml代码?
  1. <global-forwards?>??
  2. ??<forward?name="success"?path="/form/success.jsp"?/>??
  3. ??</global-forwards>??
?

?

?

11.修改Spring配置文件:注册我们的bean:Xml代码?
  1. <bean?id="userDaoImpl"?class="com.suda.dao.UserDaoImpl">??
  2. ????????????<property?name="sessionFactory"?ref="sessionFactory"/>??
  3. </bean>??
  4. ??????????
  5. <bean?name="/register"?class="com.suda.struts.action.RegisterAction">??
  6. ?????????????<property?name="userDao">??
  7. ?????????????????<ref?bean="userDaoImpl"/>??
  8. ?????????????</property>??
  9. </bean>??
?这个代码的作用我就不多说了,我的那个Spring与Struts整合的日志中有说明。
12.修改web.xml,增加UTF-8过滤器,添加Listener:Java代码?
  1. <filter>??
  2. ?????<filter-name>encodingFilter</filter-name>??
  3. ?????<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>??
  4. ?????<init-param>??
  5. ??????????<param-name>encoding</param-name>??
  6. ??????????<param-value>utf-<span

读书人网 >软件架构设计

热点推荐