下面配置Struts.xml文件,Struts2 和 Spring2.5的整合。完成后的代码:

   <?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">

<struts>

    <!--

       该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。

       如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。

    -->

    <constant name="struts.action.extension" value="action,do" />

    <!-- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 -->

    <constant name="struts.serve.static.browserCache" value="false" />

    <!-- struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开 -->

    <constant name="struts.configuration.xml.reload" value="true" />

    <!-- 开发模式下使用,这样可以打印出更详细的错误信息 -->

    <constant name="struts.devMode" value="true" />

    <!-- 默认的视图主题 -->

    <constant name="struts.ui.theme" value="simple" />

    <!-- Action请求提交给Spring的处理 -->

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

</struts>   

以上内容完成之后,SSH2就已经整合完毕。

下面我们编写一个插入一条记录的功能作为测试:

1、 编写实体类:User.java

代码:

 

public class User implements Serializable {

    private int id;

    private String userName;

    private String passWord;

     public User() {

       super();

      }

     public User(int id, String userName, String passWord) {

       super();

       this.id = id;

       this.userName = userName;

       this.passWord = passWord;

    }

     public int getId() {

       return id;

    }

     public void setId(int id) {

       this.id = id;

    }

    

     @Override

    public String toString() {

       return "User [id=" + id + ", passWord=" + passWord + ", userName="

              + userName + "]";

    }

 }

2、 编写实体类相应的映射文件。User.hbm.xml

代码:

 

<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

    <class name="com.www.pojo.User">

       <id name="id">

           <generator class="native"></generator>

       </id>

       <property name="passWord"></property>

       <property name="userName"></property>

    </class>

</hibernate-mapping>

3、 实体类映射文件添加Hibernate主配置文件中,Hibernate.cfg.xml文件的代码如下:

<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE hibernate-configuration PUBLIC

          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

 <hibernate-configuration>

     <session-factory>

       <property name="dialect">

           org.hibernate.dialect.MySQLDialect

    </property>

       <property name="connection.url">

           jdbc:mysql://localhost:3306/ssh

    </property>

       <property name="connection.username">root</property>

       <property name="connection.password">root</property>

       <property name="connection.driver_class">

           com.mysql.jdbc.Driver

    </property>

       <property name="myeclipse.connection.profile">MySQL</property>

       <property name="format_sql">true</property>

       <property name="show_sql">true</property>

      <mapping resource="com/www/hibernate/pojo/User.hbm.xml" />

     </session-factory>

 </hibernate-configuration>

4、 编写服务层接口。UserManager.java

代码:

 

public interface UserManager {

    void addUser(User user);

 }

5、编写接口实现类。UserManagerImpl.java

代码:

 

public class UserManagerImpl extends HibernateDaoSupport implements UserManager {

    public void addUser(User user) {

       this.getHibernateTemplate().save(user);

    }

}

6、 配置实现类到Spring容器中:修改applicationContext.xml文件

代码:

 

 

<bean id="userManager" class="com.www.service.impl.UserManagerImpl">

       <property name="sessionFactory" ref="sessionFactory"></property>

    </bean>

7、 编写Struts2的Action类。

代码:

 

public class AddAction {

    private String userName;

    private String passWord;

    private UserManager userManager;

    public void setUserManager(UserManager userManager) {

       this.userManager = userManager;

    }

    public String getUserName() {

       return userName;

    }

  

    public String execute(){

       User user = new User();

       try {

           BeanUtils.copyProperties(user, this);

       } catch (IllegalAccessException e) {


           e.printStackTrace();

       } catch (InvocationTargetException e) {


           e.printStackTrace();

       }

       userManager.addUser(user);

       return "success";

    }

}

8、 配置Action到Struts.xml文件中。Action配置中的class不是类,而是Spring中配置的Beanname属性值。

 <package name="add" extends="struts-default">

       <action name="user" class="addAction" method="execute">

           <result name="success">/success.jsp</result>

       </action>

</package>

9、 配置Action到Spring容器中。

代码:

 

<bean name="addAction" class="com.www.action.AddAction">

<property name="userManager" ref="userManager"></property>

 </bean>

10、 页面代码:

 

<form action="add/user.action" method="post">

        userName:<input name="userName" type="text"><br/>

        passWord:<input name="passWord" type="text"><br/>

        <input type="submit">

 </form>

以上内容编写完成了一个SSH2整合环境下的一个添加功能。赶快测试吧。

部署项目,启动Tomcat6.0。去看结果吧。

 

有什么不明白,可以留言。尽量解答。谢谢支持。