1
/****************************************************struts-config.xml****************************************************/
2![]()
3
<?xml version="1.0" encoding="UTF-8"?>
4
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
5![]()
6
<!-- Struts 配置文件中的元素配置时是有一定顺序的 -->
7
<struts-config>
8
<data-sources />
9
<form-beans>
10
<form-bean name="userForm"
11
type="com.wuwei.struts.form.UserForm">
12
</form-bean>
13
</form-beans>
14![]()
15
<global-exceptions />
16
<global-forwards />
17
<action-mappings>
18
<action path="/validateUser"
19
type="com.wuwei.struts.action.ValidateUserAction" name="userForm">
20
<forward name="success" path="/success.jsp"></forward>
21
<forward name="fail" path="/fail.jsp"></forward>
22
</action>
23![]()
24
</action-mappings>
25![]()
26
<!-- 加上controller就不用再配置action的type属性了/或者说type属性不用改为
27
type="org.springframework.web.struts.DelegatingActionProxy" -->
28
<controller
29
processorClass="org.springframework.web.struts.DelegatingRequestProcessor">
30
</controller>
31![]()
32
<message-resources
33
parameter="com.wuwei.struts.ApplicationResources" />
34![]()
35
<plug-in
36
className="org.springframework.web.struts.ContextLoaderPlugIn">
37
<set-property property="contextConfigLocation"
38
value="/WEB-INF/classes/applicationContext.xml" />
39
</plug-in>
40![]()
41
<!-- 如下配置的话,就可以不在Action中配置type属性了 -->
42
<!--<controller>
43
<set-property property="processorClass"
44
value="org.springframework.web.struts.DelegatingRequestProcessor" />
45
</controller>-->
46![]()
47
<!--配置一个插件去集成spring -->
48
<!--<plug-in
49
className="org.springframework.web.struts.ContextLoaderPlugIn">
50
<set-property property="contextConfigLocation"
51
value="/WEB-INF/applicationContext.xml" />
52
</plug-in>-->
53
</struts-config>
54![]()
55
/*********************************************….hbm.xml************************************************/
56![]()
57
<?xml version="1.0" encoding="utf-8"?>
58
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
59
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
60
<!--
61
Mapping file autogenerated by MyEclipse Persistence Tools
62
-->
63
<hibernate-mapping>
64
<!-- <class name="com.wuwei.struts.bean.User" table="user" schema="dbo" catalog="test">-->
65
<class name="com.wuwei.struts.bean.User" table="user" lazy="false">
66
<id name="ID" type="java.lang.Integer">
67
<column name="id" />
68
<generator class="increment" />
69
</id>
70
<property name="username" type="java.lang.String">
71
<column name="username" length="8" />
72
</property>
73
<property name="pwd" type="java.lang.String">
74
<column name="pwd" length="8" />
75
</property>
76
</class>
77
</hibernate-mapping>
78![]()
79![]()
/****************************************************struts-config.xml****************************************************/2

3
<?xml version="1.0" encoding="UTF-8"?>4
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">5

6
<!-- Struts 配置文件中的元素配置时是有一定顺序的 -->7
<struts-config>8
<data-sources />9
<form-beans>10
<form-bean name="userForm"11
type="com.wuwei.struts.form.UserForm">12
</form-bean>13
</form-beans>14

15
<global-exceptions />16
<global-forwards />17
<action-mappings>18
<action path="/validateUser"19
type="com.wuwei.struts.action.ValidateUserAction" name="userForm">20
<forward name="success" path="/success.jsp"></forward>21
<forward name="fail" path="/fail.jsp"></forward>22
</action>23

24
</action-mappings>25

26
<!-- 加上controller就不用再配置action的type属性了/或者说type属性不用改为27
type="org.springframework.web.struts.DelegatingActionProxy" -->28
<controller29
processorClass="org.springframework.web.struts.DelegatingRequestProcessor">30
</controller>31

32
<message-resources33
parameter="com.wuwei.struts.ApplicationResources" />34

35
<plug-in36
className="org.springframework.web.struts.ContextLoaderPlugIn">37
<set-property property="contextConfigLocation"38
value="/WEB-INF/classes/applicationContext.xml" />39
</plug-in>40

41
<!-- 如下配置的话,就可以不在Action中配置type属性了 -->42
<!--<controller>43
<set-property property="processorClass"44
value="org.springframework.web.struts.DelegatingRequestProcessor" />45
</controller>-->46

47
<!--配置一个插件去集成spring -->48
<!--<plug-in49
className="org.springframework.web.struts.ContextLoaderPlugIn">50
<set-property property="contextConfigLocation"51
value="/WEB-INF/applicationContext.xml" />52
</plug-in>-->53
</struts-config>54

55
/*********************************************….hbm.xml************************************************/56

57
<?xml version="1.0" encoding="utf-8"?>58
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"59
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">60
<!-- 61
Mapping file autogenerated by MyEclipse Persistence Tools62
-->63
<hibernate-mapping>64
<!-- <class name="com.wuwei.struts.bean.User" table="user" schema="dbo" catalog="test">-->65
<class name="com.wuwei.struts.bean.User" table="user" lazy="false">66
<id name="ID" type="java.lang.Integer">67
<column name="id" />68
<generator class="increment" />69
</id>70
<property name="username" type="java.lang.String">71
<column name="username" length="8" />72
</property>73
<property name="pwd" type="java.lang.String">74
<column name="pwd" length="8" />75
</property>76
</class>77
</hibernate-mapping>78

79

1
/*******************************************************applicationConfig.xml**********************************************************/
2![]()
3
<?xml version="1.0" encoding="UTF-8"?>
4
<beans xmlns="http://www.springframework.org/schema/beans"
5
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
7![]()
8
<!-- 数据源部分 -->
9
<bean id="dataSource"
10
class="org.apache.commons.dbcp.BasicDataSource">
11
<property name="driverClassName"
12
value="net.sourceforge.jtds.jdbc.Driver">
13
</property>
14
<property name="url"
15
value="jdbc:jtds:sqlserver://localhost:1433/test">
16
</property>
17
<property name="username" value="sa"></property>
18
<property name="password" value="admin"></property>
19
</bean>
20![]()
21
<!-- 将Hibernate交由Spring管理(Hibernate相关配置信息) ,创建SessionFactory-->
22
<bean id="sessionFactory"
23
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
24
<property name="dataSource">
25
<ref bean="dataSource" />
26
</property>
27
<property name="hibernateProperties">
28
<props>
29
<prop key="hibernate.dialect">
30
org.hibernate.dialect.SQLServerDialect
31
</prop>
32
<prop key="hibernate.show_sql">true</prop>
33
</props>
34
</property>
35
<property name="mappingResources">
36
<list>
37
<value>com/wuwei/struts/dao/User.hbm.xml</value>
38
</list>
39
</property>
40
</bean>
41![]()
42
<!-- 通过HibernateDaoSupport来操作数据库,需要植入sessionFactory
43
UserDao继承自HibernateDaoSupport
44
-->
45
<bean id="userDao" class="com.wuwei.struts.dao.UserDAO">
46
<property name="sessionFactory" ref="sessionFactory" />
47
</bean>
48![]()
49
<!--
50
如果想在某个Dao类中直接使用HibernateTemplate来操作数据库,则需要按如下配置
51
上述的HibernateDaoSupport其实也是利用HibernateTemplate来操作数据库的,只是做
52
了一些封装。刚开始还一直在想,哪种实现方式好了,这样看来,还是看个人习惯吧。
53
-->
54
<!--
55
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
56
<property name="sessionFactory" ref="sessionFactory" />
57
</bean>
58
59
<bean id="userDao" class="com.wuwei.struts.dao.UserDAO">
60
<property name="hibernateTemplate" ref="hibernateTemplate" />
61
</bean>
62
-->
63![]()
64
<!-- Struts -->
65
<bean name="/validateUser"
66
class="com.wuwei.struts.action.ValidateUserAction">
67
<property name="userDAO" ref="userDao" />
68![]()
69
</bean>
70
</beans>
71![]()
72![]()
/*******************************************************applicationConfig.xml**********************************************************/2

3
<?xml version="1.0" encoding="UTF-8"?>4
<beans xmlns="http://www.springframework.org/schema/beans"5
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"6
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">7

8
<!-- 数据源部分 -->9
<bean id="dataSource"10
class="org.apache.commons.dbcp.BasicDataSource">11
<property name="driverClassName"12
value="net.sourceforge.jtds.jdbc.Driver">13
</property>14
<property name="url"15
value="jdbc:jtds:sqlserver://localhost:1433/test">16
</property>17
<property name="username" value="sa"></property>18
<property name="password" value="admin"></property>19
</bean>20

21
<!-- 将Hibernate交由Spring管理(Hibernate相关配置信息) ,创建SessionFactory-->22
<bean id="sessionFactory"23
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">24
<property name="dataSource">25
<ref bean="dataSource" />26
</property>27
<property name="hibernateProperties">28
<props>29
<prop key="hibernate.dialect">30
org.hibernate.dialect.SQLServerDialect31
</prop>32
<prop key="hibernate.show_sql">true</prop>33
</props>34
</property>35
<property name="mappingResources">36
<list>37
<value>com/wuwei/struts/dao/User.hbm.xml</value>38
</list>39
</property>40
</bean>41

42
<!-- 通过HibernateDaoSupport来操作数据库,需要植入sessionFactory 43
UserDao继承自HibernateDaoSupport44
-->45
<bean id="userDao" class="com.wuwei.struts.dao.UserDAO">46
<property name="sessionFactory" ref="sessionFactory" />47
</bean>48

49
<!-- 50
如果想在某个Dao类中直接使用HibernateTemplate来操作数据库,则需要按如下配置 51
上述的HibernateDaoSupport其实也是利用HibernateTemplate来操作数据库的,只是做52
了一些封装。刚开始还一直在想,哪种实现方式好了,这样看来,还是看个人习惯吧。53
-->54
<!-- 55
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">56
<property name="sessionFactory" ref="sessionFactory" />57
</bean>58
59
<bean id="userDao" class="com.wuwei.struts.dao.UserDAO">60
<property name="hibernateTemplate" ref="hibernateTemplate" />61
</bean>62
-->63

64
<!-- Struts -->65
<bean name="/validateUser"66
class="com.wuwei.struts.action.ValidateUserAction">67
<property name="userDAO" ref="userDao" />68

69
</bean>70
</beans>71

72

1
/****************************************************UserDAO.java****************************************************/
2![]()
3![]()
4
package com.wuwei.struts.dao;
5![]()
6
import java.util.List;
7![]()
8
import org.apache.commons.logging.Log;
9
import org.apache.commons.logging.LogFactory;
10
import org.hibernate.LockMode;
11
import org.springframework.context.ApplicationContext;
12
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
13![]()
14
import com.wuwei.struts.bean.User;
15![]()
16
/**
17
* Data access object (DAO) for domain model class User.
18
*
19
* @see com.wuwei.struts.dao.User
20
* @author MyEclipse Persistence Tools
21
*/
22
public class UserDAO extends HibernateDaoSupport{
23![]()
24
private static final Log log = LogFactory.getLog(UserDAO.class);
25![]()
26
// property constants
27
public static final String USERNAME = "username";
28![]()
29
public static final String PWD = "pwd";
30![]()
31
protected void initDao()
32
{
33
// do nothing
34
}
35![]()
36
public void save(User transientInstance)
37
{
38
log.debug("saving User instance");
39
try
40
{
41
getHibernateTemplate().save(transientInstance);
42
log.debug("save successful");
43
}
44
catch (RuntimeException re)
45
{
46
log.error("save failed", re);
47
throw re;
48
}
49
}
50![]()
51
public void delete(User persistentInstance)
52
{
53
log.debug("deleting User instance");
54
try
55
{
56
getHibernateTemplate().delete(persistentInstance);
57
log.debug("delete successful");
58
}
59
catch (RuntimeException re)
60
{
61
log.error("delete failed", re);
62
throw re;
63
}
64
}
65![]()
66
public User findById(java.lang.Integer id)
67
{
68
log.debug("getting User instance with id: " + id);
69
try
70
{
71
User instance = (User) getHibernateTemplate().get("com.wuwei.struts.dao.User", id);
72
return instance;
73
}
74
catch (RuntimeException re)
75
{
76
log.error("get failed", re);
77
throw re;
78
}
79
}
80![]()
81
public List findByExample(User instance)
82
{
83
log.debug("finding User instance by example");
84
try
85
{
86
List results = getHibernateTemplate().findByExample(instance);
87
log.debug("find by example successful, result size: " + results.size());
88
return results;
89
}
90
catch (RuntimeException re)
91
{
92
log.error("find by example failed", re);
93
throw re;
94
}
95
}
96![]()
97
public List findByProperty(String propertyName, Object value)
98
{
99
log.debug("finding User instance with property: " + propertyName + ", value: " + value);
100
try
101
{
102
String queryString = "from User as model where model." + propertyName + "= ?";
103
return getHibernateTemplate().find(queryString, value);
104
}
105
catch (RuntimeException re)
106
{
107
log.error("find by property name failed", re);
108
throw re;
109
}
110
}
111![]()
112
public List findByUsername(Object username)
113
{
114
return findByProperty(USERNAME, username);
115
}
116![]()
117
public List findByPwd(Object pwd)
118
{
119
return findByProperty(PWD, pwd);
120
}
121![]()
122
public List findAll()
123
{
124
log.debug("finding all User instances");
125
try
126
{
127
String queryString = "from User";
128
return getHibernateTemplate().find(queryString);
129
}
130
catch (RuntimeException re)
131
{
132
log.error("find all failed", re);
133
throw re;
134
}
135
}
136![]()
137
public User merge(User detachedInstance)
138
{
139
log.debug("merging User instance");
140
try
141
{
142
User result = (User) getHibernateTemplate().merge(detachedInstance);
143
log.debug("merge successful");
144
return result;
145
}
146
catch (RuntimeException re)
147
{
148
log.error("merge failed", re);
149
throw re;
150
}
151
}
152![]()
153
public void attachDirty(User instance)
154
{
155
log.debug("attaching dirty User instance");
156
try
157
{
158
getHibernateTemplate().saveOrUpdate(instance);
159
log.debug("attach successful");
160
}
161
catch (RuntimeException re)
162
{
163
log.error("attach failed", re);
164
throw re;
165
}
166
}
167![]()
168
public void attachClean(User instance)
169
{
170
log.debug("attaching clean User instance");
171
try
172
{
173
getHibernateTemplate().lock(instance, LockMode.NONE);
174
log.debug("attach successful");
175
}
176
catch (RuntimeException re)
177
{
178
log.error("attach failed", re);
179
throw re;
180
}
181
}
182![]()
183
public static UserDAO getFromApplicationContext(ApplicationContext ctx)
184
{
185
return (UserDAO) ctx.getBean("UserDAO");
186
}
187
}
188![]()
189![]()
/****************************************************UserDAO.java****************************************************/2

3

4
package com.wuwei.struts.dao;5

6
import java.util.List;7

8
import org.apache.commons.logging.Log;9
import org.apache.commons.logging.LogFactory;10
import org.hibernate.LockMode;11
import org.springframework.context.ApplicationContext;12
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;13

14
import com.wuwei.struts.bean.User;15

16
/**17
* Data access object (DAO) for domain model class User.18
* 19
* @see com.wuwei.struts.dao.User20
* @author MyEclipse Persistence Tools21
*/22
public class UserDAO extends HibernateDaoSupport{23

24
private static final Log log = LogFactory.getLog(UserDAO.class);25

26
// property constants27
public static final String USERNAME = "username";28

29
public static final String PWD = "pwd";30

31
protected void initDao()32
{33
// do nothing34
}35

36
public void save(User transientInstance)37
{38
log.debug("saving User instance");39
try40
{41
getHibernateTemplate().save(transientInstance);42
log.debug("save successful");43
}44
catch (RuntimeException re)45
{46
log.error("save failed", re);47
throw re;48
}49
}50

51
public void delete(User persistentInstance)52
{53
log.debug("deleting User instance");54
try55
{56
getHibernateTemplate().delete(persistentInstance);57
log.debug("delete successful");58
}59
catch (RuntimeException re)60
{61
log.error("delete failed", re);62
throw re;63
}64
}65

66
public User findById(java.lang.Integer id)67
{68
log.debug("getting User instance with id: " + id);69
try70
{71
User instance = (User) getHibernateTemplate().get("com.wuwei.struts.dao.User", id);72
return instance;73
}74
catch (RuntimeException re)75
{76
log.error("get failed", re);77
throw re;78
}79
}80

81
public List findByExample(User instance)82
{83
log.debug("finding User instance by example");84
try85
{86
List results = getHibernateTemplate().findByExample(instance);87
log.debug("find by example successful, result size: " + results.size());88
return results;89
}90
catch (RuntimeException re)91
{92
log.error("find by example failed", re);93
throw re;94
}95
}96

97
public List findByProperty(String propertyName, Object value)98
{99
log.debug("finding User instance with property: " + propertyName + ", value: " + value);100
try101
{102
String queryString = "from User as model where model." + propertyName + "= ?";103
return getHibernateTemplate().find(queryString, value);104
}105
catch (RuntimeException re)106
{107
log.error("find by property name failed", re);108
throw re;109
}110
}111

112
public List findByUsername(Object username)113
{114
return findByProperty(USERNAME, username);115
}116

117
public List findByPwd(Object pwd)118
{119
return findByProperty(PWD, pwd);120
}121

122
public List findAll()123
{124
log.debug("finding all User instances");125
try126
{127
String queryString = "from User";128
return getHibernateTemplate().find(queryString);129
}130
catch (RuntimeException re)131
{132
log.error("find all failed", re);133
throw re;134
}135
}136

137
public User merge(User detachedInstance)138
{139
log.debug("merging User instance");140
try141
{142
User result = (User) getHibernateTemplate().merge(detachedInstance);143
log.debug("merge successful");144
return result;145
}146
catch (RuntimeException re)147
{148
log.error("merge failed", re);149
throw re;150
}151
}152

153
public void attachDirty(User instance)154
{155
log.debug("attaching dirty User instance");156
try157
{158
getHibernateTemplate().saveOrUpdate(instance);159
log.debug("attach successful");160
}161
catch (RuntimeException re)162
{163
log.error("attach failed", re);164
throw re;165
}166
}167

168
public void attachClean(User instance)169
{170
log.debug("attaching clean User instance");171
try172
{173
getHibernateTemplate().lock(instance, LockMode.NONE);174
log.debug("attach successful");175
}176
catch (RuntimeException re)177
{178
log.error("attach failed", re);179
throw re;180
}181
}182

183
public static UserDAO getFromApplicationContext(ApplicationContext ctx)184
{185
return (UserDAO) ctx.getBean("UserDAO");186
}187
}188

189

1
/****************************************************ValidateUserAction.java****************************************************/
2![]()
3![]()
4
package com.wuwei.struts.action;
5![]()
6
import java.util.List;
7![]()
8
import javax.servlet.http.HttpServletRequest;
9
import javax.servlet.http.HttpServletResponse;
10![]()
11
import org.apache.struts.action.Action;
12
import org.apache.struts.action.ActionForm;
13
import org.apache.struts.action.ActionForward;
14
import org.apache.struts.action.ActionMapping;
15![]()
16
import com.wuwei.struts.bean.User;
17
import com.wuwei.struts.dao.UserDAO;
18
import com.wuwei.struts.form.UserForm;
19![]()
20
public class ValidateUserAction extends Action{
21![]()
22
UserDAO userDAO = null;
23![]()
24
public void setUserDAO(UserDAO userDAO)
25
{
26
this.userDAO = userDAO;
27
}
28![]()
29
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
30
HttpServletResponse response)
31
{
32
UserForm userForm = (UserForm) form;
33
List list = userDAO.findByUsername(userForm.getUsername());
34
if (0 < list.size())
35
{
36
User user = (User) list.get(0);
37
if (user.getPwd().equals(userForm.getPwd()))
38
return mapping.findForward("success");
39
else
40
return mapping.findForward("fail");
41
}
42
else
43
return mapping.findForward("fail");
44
// System.out.println("I'm in a Action");
45
// return null;
46
}
47
}
48![]()
/****************************************************ValidateUserAction.java****************************************************/2

3

4
package com.wuwei.struts.action;5

6
import java.util.List;7

8
import javax.servlet.http.HttpServletRequest;9
import javax.servlet.http.HttpServletResponse;10

11
import org.apache.struts.action.Action;12
import org.apache.struts.action.ActionForm;13
import org.apache.struts.action.ActionForward;14
import org.apache.struts.action.ActionMapping;15

16
import com.wuwei.struts.bean.User;17
import com.wuwei.struts.dao.UserDAO;18
import com.wuwei.struts.form.UserForm;19

20
public class ValidateUserAction extends Action{21

22
UserDAO userDAO = null;23

24
public void setUserDAO(UserDAO userDAO)25
{26
this.userDAO = userDAO;27
}28

29
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,30
HttpServletResponse response)31
{32
UserForm userForm = (UserForm) form;33
List list = userDAO.findByUsername(userForm.getUsername());34
if (0 < list.size())35
{36
User user = (User) list.get(0);37
if (user.getPwd().equals(userForm.getPwd()))38
return mapping.findForward("success");39
else40
return mapping.findForward("fail");41
}42
else43
return mapping.findForward("fail");44
// System.out.println("I'm in a Action");45
// return null;46
}47
}48




浙公网安备 33010602011771号