下面配置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中配置的Bean的name属性值。
<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。去看结果吧。
有什么不明白,可以留言。尽量解答。谢谢支持。