zoukankan      html  css  js  c++  java
  • Struts 2+Spring 3+Hibernate 3.3 在MyEclipse 10环境下的整合配置

        想动手做一个SSH框架下的登录注册功能,虽然网上类似的教程很多,可是看了一圈,不是版本问题,就是漏掉了许多关键的步骤。经过几个小时的奋战,终于搞定了所谓很简单的SSH整合实现注册功能,下面把所有的步骤分享出来,希望能帮到有需要的朋友。

        下面以简单的注册模块为例,描述整合的步骤及配置。

      1.创建一个Web Project,工程名字任意;

      2.添加Struts 2支持:右键单击工程文件夹,在弹出菜单中的MyEclipse->Add Struts Capabilities,这里需要选择Struts的版本,笔者选择是Struts 2.1,另外struts action 的url,笔者选择的是“\*”,样式也可以进行选择,另外还要注意libraries的选择,需要引入Struts 2 Core Libraries与Struts2 Spring Libraries,其他都选择默认即可;

      3.添加Spring 3的支持:右键单击工程文件夹,在弹出菜单中的MyEclipse->Add Spring Capabilities,在libraries的选择上,需要添加Spring 3.0 AOP Libraries、Spring 3.0 Core Libraries、Spring 3.0 Persistence Core Libraries、Spring 3.0 Persistence JDBC Libraries、Spring 3.0 Web Libraries;

      4.添加Hibernate 3.3的支持:右键单击工程文件夹,在弹出菜单中的MyEclipse->Add Hibernate Capabilities,这里需要选择配置文件为applicationContext.xml,选择Existing Spring configuration file,JDBC的配置根据所选择的数据库,查询相关的配置即可,Create SessionFactory class的勾选去掉;

      5.进行数据库映射:在 DB Browser里打开数据库,在用到的数据库表上,右键单击,选择Hibernate Mapping and Application Generation,创建*.hbm.xml,JDO,DAO,其他选择默认的设置即;

      6.修改web.xml配置文件,添加spring的配置信息,代码如下:

    <listener>
           <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
      <context-param>
           <param-name>contextConfigLocation</param-name>
           <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
      </context-param>

        7.修改struts.xml文件,让struts支持spring,添加以下代码:

    <constant name="struts.objectFactory" value="spring"/>

       8.创建RegisterAction,继承至ActionSupport,添加两个属性,一个用于获取填写的注册信息,一个是DAO用于数据库操作,其中DAO也可以根据喜好封装成service,这里不再赘述,代码如下:

    public class RegisterAction extends ActionSupport{
    
             private User user;
             public User getUser() {
                       return user;
             }
    
             public void setUser(User user) {
                       this.user = user;
            }
    
             public UserDAO getUserDAO() {
                       return userDAO;
             }
    
             public void setUserDAO(UserDAO userDAO) {
                       this.userDAO = userDAO;
             }
    
             private UserDAO userDAO;
            
             public String execute() throws Exception{
                       if(user!=null){
                               userDAO.save(user);
                               return SUCCESS;
                       }else{
                                return ERROR;
                       }
             }
    }

        9.修改spring配置applicationContext.xml,为我们的RegisterAction添加一个bean,这里要注意userDAO是我们刚创建的RegisterAction类中的属性,它是bean UserDAO的引用,所需添加的代码如下:

             <bean id="RegisterAction" class="actions.RegisterAction">
                       <property name="userDAO">
                                <ref bean="UserDAO"/>
                       </property>
             </bean>

        10.修改struts配置struts.xml,添加一个继承自struts-default的package,以及一个action,需要注意的是action的class不再RegisterAction类,而是我们在spring中声明的RegisterAction bean的id,具体的代码如下:

    <package name="struts" extends="struts-default">
             <action name="Register" class="RegisterAction">
                       <result name="error">/error.jsp</result>
                       <result name="success">/success.jsp</result>
             </action>
    </package>

        11.添加相关的jsp页面,这里给出关键的register.jsp页面的代码,需要注意的是user.name和user.password是RegisterAction中所定义的属性user下的属性,通过hibernate映射生成,如下:

    <%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'Register.jsp' starting page</title>
        
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
    
      </head>
      
      <body>
        This is my JSP page. <br>
        <form action="Register.action" method="post">
            <table align="center">
                <tr>
                    <td>用户名:<input type="text" name="user.username"/></td>
                </tr>
                <tr>
                    <td>密码:<input type="text" name="user.password"/></td>
                </tr>
                <tr>
                    <td><input type="submit" value="登录"/>
                    <input type="reset" value="重填"/></td>
                </tr>
            </table>
        </form>
      </body>
    </html>

        总结:到这里,所有的配置都已经完成,部署之后进行简单的测试,填写用户名和密码,点击确认之后,数据库中便会成功添加一条记录。

    最后推销下自己建的一个文学网站起得早读书网,欢迎文艺程序猿莅临指导交流

    (原创文章,转载请注明作者schbook:seekerxu@163.com)

  • 相关阅读:
    迷宫 填充法新思路(填充干扰路径)
    类模板使用说明
    thinkphp5项目--企业单车网站(二)
    thinkphp5项目--企业单车网站(一)
    thinkphp5项目--个人博客(八)
    PHP 二维数组去掉重复值并保持原结构
    PHP join() 函数
    PHP array_merge() 函数
    thinkphp5项目--个人博客(七)
    PHP str_replace() 和str_ireplace()函数
  • 原文地址:https://www.cnblogs.com/schbook/p/2667690.html
Copyright © 2011-2022 走看看