1、在MyEclipse中新建项目(test)
2、Struts包导入
暂时导入所必需的包,其他包将在用到时导入:
commons-fileupload-1.2.1.jar
commons-logging-1.0.4.jar
freemarker-2.3.13.jar
ognl-2.6.11.jar
struts2-core-2.1.6.jar
xwork-2.1.2.jar
3、复制在Struts目录的例子程序中WEB-INF\classes\struts.xml文件,粘贴到项目的src目录下,主要保留其文件头:
<?xml version="1.0" encoding="GBK" ?>2
<!DOCTYPE struts PUBLIC3
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"4
"http://struts.apache.org/dtds/struts-2.0.dtd">5

6
<struts>7
<package name="struts2" extends="struts-default">8

9
</package>10
</struts>
4、配置web.xml
<?xml version="1.0" encoding="UTF-8"?>2
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"3
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"4
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 5
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">6

7
<filter>8
<filter-name>struts2</filter-name>9
<filter-class>10
org.apache.struts2.dispatcher.FilterDispatcher11
</filter-class>12
</filter>13
<filter-mapping>14
<filter-name>struts2</filter-name>15
<url-pattern>/*</url-pattern>16
</filter-mapping>17

18
<welcome-file-list>19
<welcome-file>index.jsp</welcome-file>20
</welcome-file-list>21
</web-app>
5、引入Spring包,在dist目录下
spring.jar
6、在src目录下建立三个文件
applicationContext-actions.xml
applicationContext-beans.xml
applicationContext-common.xml
这三个文件其实是applicationContext.xml的分解,为的是避免所有配置放在同一文件,造成混乱。
结构均如下:
<?xml version="1.0" encoding="GBK"?>2

3
<beans xmlns="http://www.springframework.org/schema/beans"4
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"5
xmlns:context="http://www.springframework.org/schema/context"6
xmlns:tx="http://www.springframework.org/schema/tx"7
xmlns:aop="http://www.springframework.org/schema/aop"8
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd9
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd10
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd 11
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">12

13
</beans>
7、需要在web.xml进行配置
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext-*.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
前一段代码的配置是因为我们配置了后一段代码的配置后它默认是到WEB-INF下查找applicationContext.xml文件,我们现在改到src目录下并进行文件分解。
8、需要引入Struts2中的另一个包
struts2-spring-plugin-2.1.6.jar
9、测试是否整合成功
(1)建立页面login.jsp、welcome.jsp、error.jsp分别为登录页面、登录成功页面、出错页面
login.jsp
<%@ page language="java" contentType="text/html; charset=GB18030"2
pageEncoding="GB18030"%>3
<%@ taglib prefix="s" uri="/struts-tags"%>4
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">5
<html>6
<head>7
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">8
<title>登录页面</title>9
</head>10
<body>11
<s:form action="login" method="post">12
<s:textfield name="username" label="username" />13
<s:password name="password" label="password" />14
<s:submit value="submit" />15
</s:form>16
</body>17
</html>
welcome.jsp
<%@ page language="java" contentType="text/html; charset=GB18030"2
pageEncoding="GB18030"%>3
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">4
<html>5
<head>6
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">7
<title>登录成功</title>8
</head>9
<body>10
用户名:${username }11
<br>12
密码:${password }13
<br>14
</body>15
</html>
(2)建包com.test.manager和com.test.manager.impl分别存放业务逻辑处理的接口和其实现,分别建立接口LoginManager.java和其实现LoginManagerImpl.java
LoginManager.java
package com.test.manager;2

3
public interface LoginManager {4
public boolean isLogin(String username, String password);5
}
LoginManagerImpl.java,只是测试用,判断用户名密码是否为intrl、intrl,若是则登录成功
package com.test.manager.impl;2

3
import com.test.manager.LoginManager;4

5
public class LoginManagerImpl implements LoginManager{6
public boolean isLogin(String username, String password)7
{8
if(null!=username&&null!=password&&"intrl".equals(username.trim())&&"intrl".equals(password.trim()))9
{10
return true;11
}12
return false;13
}14
}
(3)在applicationContext-beans.xml把实现类配置上,以让Spring进行管理
<bean id="loginManager"
class="com.test.manager.impl.LoginManagerImpl">
</bean>
(4)创建包com.test.action用于存放action,并新建LoginAction.java,继承ActionSupport类
包含从页面所接收参数username、password,以及业务逻辑处理类LoginManager类型的loginManager,给username和password设置get、set,给loginManager设置set方法,以让Spring为我们自动注入;overwrite父类中的
package com.test.action;2

3
import com.opensymphony.xwork2.ActionSupport;4
import com.test.manager.LoginManager;5

6
@SuppressWarnings("serial")7
public class LoginAction extends ActionSupport {8
private LoginManager loginManager;9
private String username;10
private String password;11

12
public String getUsername() {13
return username;14
}15

16
public void setUsername(String username) {17
this.username = username;18
}19

20
public String getPassword() {21
return password;22
}23

24
public void setPassword(String password) {25
this.password = password;26
}27

28
public void setLoginManager(LoginManager loginManager) {29
this.loginManager = loginManager;30
}31
32
@Override33
public String execute() throws Exception {34

35
if(loginManager.isLogin(username, password))36
{37
return SUCCESS;38
}39
return INPUT;40
}41
}
(5)在applicationContext-actions.xml中进行配置,也让Spring来管理LoginAction
<bean id="loginAction" class="com.test.action.LoginAction"
scope="prototype">
<property name="loginManager" ref="loginManager"></property>
</bean>
(6)在struts.xml中进行配置,处理页面提交的请求,配置action:login,login一定要和login.jsp中form的action属性名匹配。此时struts.xml文件如下:
<?xml version="1.0" encoding="GBK" ?>2
<!DOCTYPE struts PUBLIC3
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"4
"http://struts.apache.org/dtds/struts-2.0.dtd">5

6
<struts>7
<package name="struts2" extends="struts-default">8



1026

被折叠的 条评论
为什么被折叠?



