贫民窟里的程序高手

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

Struts2+spring2+hibernate3整合方案
最近闲来无事可做,于是开始学习struts2。Struts2和struts1、webwork2有什么区别我也不说了,网上有很多这方面的资料。以前在项目中从未使用过struts,一直使用spring+hibernate,现在既然学习了Struts,也不能浪费,于是乎开始琢磨着怎么整合这3个框架。整合原理以spring为容器,管理hibernate的DAO和Struts2的Action。
一、 准备工作
Struts2.06+spring2.5+hibernate3.2+jdk6.0+myeclipse6.0+tomcat5.5+mysql5.0
以上是整合的原料。下面以一个注册登陆的例子来开始我们的整合过程。
这个例子很简单,下面是它的sql脚本内容:
CREATE TABLE `user` (
  `userid` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(20) NOT NULL,
  `password` varchar(16) NOT NULL,
  `email` varchar(30) NOT NULL,
  PRIMARY KEY (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf-8;
二、 开始行动
包结构可以参考下图

图一

图二


图三
1) Struts部分:建立struts.xml和struts.properties
Struts.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd" >
<struts>
<package name="user_curd" extends="struts-default" >
<global-results>
<!-- 下面定义的结果对所有的Action都有效 -->
<result name="exception">/error.jsp</result>
</global-results>

<global-exception-mappings>
<!-- 指Action抛出Exception异常时,转入名为exception的结果。 -->
<exception-mapping exception="java.lang.Exception" result="exception"/>
</global-exception-mappings>

<action name="Login" class="LoginAction">
<result name="success">/success.jsp</result>
<result name="input">/login.jsp</result>
</action>
<action name="Regist" class="RegistAction">
<result name="success">/success.jsp</result>
<result name="input">/regist.jsp</result>
</action>
</package>

</struts>

Struts.properties内容如下:

struts.devMode=false
struts.enable.DynamicMethodInvocation
=true
struts.i18n.reload
=true
struts.ui.theme
=xhtml

struts.locale
=zh_CN
struts.i18n.encoding
=UTF-8
struts.objectFactory
=spring
struts.objectFactory.spring.autoWire
=name

struts.serve.
static.browserCache=false
struts.url.includeParams
=none
2) 建立User.java和User.hbm.xml、jdbc.properties:
User.java内容如下:
/**
*
*
@author <a href="mailto:flustar2008@163.com">flustar</a>
*
@version 1.0
* Creation date: Dec 23, 2007 1:55:28 PM
*/
package com.firstssh.model;

import java.io.Serializable;

public class User implements Serializable {
private int id;
private String username;
private String password;
private String email;

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}
}
User.hbm.xml内容:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping
package="com.firstssh.model">

<class name="User" table="User">
<id name="id" column="userid">
<generator class="identity" />
</id>
<property name="username"
column
="username"
not
-null="true"
length
="20"
/>
<property name="password"
column
="password"
not
-null="true"
length
="16" />
<property name="email"
column
="email"
not
-null="true"
length
="30"/>
</class>

</hibernate-mapping>
posted on 2011-06-03 10:07  贫民窟里的程序高手  阅读(132)  评论(0)    收藏  举报