读书人

【Java EE】Struts2.1.6与Spring2.5.6

发布时间: 2012-09-03 09:48:39 作者: rapoo

【Java EE】Struts2.1.6与Spring2.5.6框架整合

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目录下,主要保留其文件头:

?1【Java EE】Struts2.1.6与Spring2.5.6框架调整<?xml?version="1.0"?encoding="GBK"??>
?2【Java EE】Struts2.1.6与Spring2.5.6框架调整<!DOCTYPE?struts?PUBLIC
?3【Java EE】Struts2.1.6与Spring2.5.6框架调整????"-//Apache?Software?Foundation//DTD?Struts?Configuration?2.0//EN"
?4【Java EE】Struts2.1.6与Spring2.5.6框架调整????"http://struts.apache.org/dtds/struts-2.0.dtd">
?5【Java EE】Struts2.1.6与Spring2.5.6框架调整
?6【Java EE】Struts2.1.6与Spring2.5.6框架调整<struts>
?7【Java EE】Struts2.1.6与Spring2.5.6框架调整????<package?name="struts2"?extends="struts-default">
?8【Java EE】Struts2.1.6与Spring2.5.6框架调整
?9【Java EE】Struts2.1.6与Spring2.5.6框架调整????</package>
10【Java EE】Struts2.1.6与Spring2.5.6框架调整</struts>


4、配置web.xml

?1【Java EE】Struts2.1.6与Spring2.5.6框架调整<?xml?version="1.0"?encoding="UTF-8"?>
?2【Java EE】Struts2.1.6与Spring2.5.6框架调整<web-app?version="2.5"?xmlns="http://java.sun.com/xml/ns/javaee"
?3【Java EE】Struts2.1.6与Spring2.5.6框架调整????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
?4【Java EE】Struts2.1.6与Spring2.5.6框架调整????xsi:schemaLocation="http://java.sun.com/xml/ns/javaee?
?5【Java EE】Struts2.1.6与Spring2.5.6框架调整????http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
?6【Java EE】Struts2.1.6与Spring2.5.6框架调整
?7【Java EE】Struts2.1.6与Spring2.5.6框架调整????<filter>
?8【Java EE】Struts2.1.6与Spring2.5.6框架调整????????<filter-name>struts2</filter-name>
?9【Java EE】Struts2.1.6与Spring2.5.6框架调整????????<filter-class>
10【Java EE】Struts2.1.6与Spring2.5.6框架调整????????????org.apache.struts2.dispatcher.FilterDispatcher
11【Java EE】Struts2.1.6与Spring2.5.6框架调整????????</filter-class>
12【Java EE】Struts2.1.6与Spring2.5.6框架调整????</filter>
13【Java EE】Struts2.1.6与Spring2.5.6框架调整????<filter-mapping>
14【Java EE】Struts2.1.6与Spring2.5.6框架调整????????<filter-name>struts2</filter-name>
15【Java EE】Struts2.1.6与Spring2.5.6框架调整????????<url-pattern>/*</url-pattern>
16【Java EE】Struts2.1.6与Spring2.5.6框架调整????</filter-mapping>
17【Java EE】Struts2.1.6与Spring2.5.6框架调整
18【Java EE】Struts2.1.6与Spring2.5.6框架调整????<welcome-file-list>
19【Java EE】Struts2.1.6与Spring2.5.6框架调整????????<welcome-file>index.jsp</welcome-file>
20【Java EE】Struts2.1.6与Spring2.5.6框架调整????</welcome-file-list>
21【Java EE】Struts2.1.6与Spring2.5.6框架调整</web-app>

5、引入Spring包,在dist目录下
???spring.jar
6、在src目录下建立三个文件
???applicationContext-actions.xml
???applicationContext-beans.xml
???applicationContext-common.xml
???这三个文件其实是applicationContext.xml的分解,为的是避免所有配置放在同一文件,造成混乱。
???结构均如下:

?1【Java EE】Struts2.1.6与Spring2.5.6框架调整<?xml?version="1.0"?encoding="GBK"?>
?2【Java EE】Struts2.1.6与Spring2.5.6框架调整
?3【Java EE】Struts2.1.6与Spring2.5.6框架调整<beans?xmlns="http://www.springframework.org/schema/beans"
?4【Java EE】Struts2.1.6与Spring2.5.6框架调整????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
?5【Java EE】Struts2.1.6与Spring2.5.6框架调整????xmlns:context="http://www.springframework.org/schema/context"
?6【Java EE】Struts2.1.6与Spring2.5.6框架调整????xmlns:tx="http://www.springframework.org/schema/tx"
?7【Java EE】Struts2.1.6与Spring2.5.6框架调整????xmlns:aop="http://www.springframework.org/schema/aop"
?8【Java EE】Struts2.1.6与Spring2.5.6框架调整????xsi:schemaLocation="http://www.springframework.org/schema/beans?http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
?9【Java EE】Struts2.1.6与Spring2.5.6框架调整????????????????http://www.springframework.org/schema/context?http://www.springframework.org/schema/context/spring-context-2.5.xsd
10【Java EE】Struts2.1.6与Spring2.5.6框架调整????????????????http://www.springframework.org/schema/tx?http://www.springframework.org/schema/tx/spring-tx-2.5.xsd?
11【Java EE】Struts2.1.6与Spring2.5.6框架调整????????????????http://www.springframework.org/schema/aop?http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
12【Java EE】Struts2.1.6与Spring2.5.6框架调整
13【Java EE】Struts2.1.6与Spring2.5.6框架调整</beans>


7、需要在web.xml进行配置

【Java EE】Struts2.1.6与Spring2.5.6框架调整????<context-param>
【Java EE】Struts2.1.6与Spring2.5.6框架调整????????<param-name>contextConfigLocation</param-name>
【Java EE】Struts2.1.6与Spring2.5.6框架调整????????<param-value>classpath*:applicationContext-*.xml</param-value>
【Java EE】Struts2.1.6与Spring2.5.6框架调整????</context-param>

?

【Java EE】Struts2.1.6与Spring2.5.6框架调整????<listener>
【Java EE】Struts2.1.6与Spring2.5.6框架调整????????<listener-class>
【Java EE】Struts2.1.6与Spring2.5.6框架调整????????????org.springframework.web.context.ContextLoaderListener
【Java EE】Struts2.1.6与Spring2.5.6框架调整????????</listener-class>
【Java EE】Struts2.1.6与Spring2.5.6框架调整????</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

?1【Java EE】Struts2.1.6与Spring2.5.6框架调整【Java EE】Struts2.1.6与Spring2.5.6框架调整<%【Java EE】Struts2.1.6与Spring2.5.6框架调整@?page?language="java"?contentType="text/html;?charset=GB18030"
?2【Java EE】Struts2.1.6与Spring2.5.6框架调整????pageEncoding="GB18030"%>
?3【Java EE】Struts2.1.6与Spring2.5.6框架调整【Java EE】Struts2.1.6与Spring2.5.6框架调整<%【Java EE】Struts2.1.6与Spring2.5.6框架调整@?taglib?prefix="s"?uri="/struts-tags"%>
?4【Java EE】Struts2.1.6与Spring2.5.6框架调整<!DOCTYPE?html?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"?"http://www.w3.org/TR/html4/loose.dtd">
?5【Java EE】Struts2.1.6与Spring2.5.6框架调整<html>
?6【Java EE】Struts2.1.6与Spring2.5.6框架调整????<head>
?7【Java EE】Struts2.1.6与Spring2.5.6框架调整????????<meta?http-equiv="Content-Type"?content="text/html;?charset=GB18030">
?8【Java EE】Struts2.1.6与Spring2.5.6框架调整????????<title>登录页面</title>
?9【Java EE】Struts2.1.6与Spring2.5.6框架调整????</head>
10【Java EE】Struts2.1.6与Spring2.5.6框架调整????<body>
11【Java EE】Struts2.1.6与Spring2.5.6框架调整????????<s:form?action="login"?method="post">
12【Java EE】Struts2.1.6与Spring2.5.6框架调整????????????<s:textfield?name="username"?label="username"?/>
13【Java EE】Struts2.1.6与Spring2.5.6框架调整????????????<s:password?name="password"?label="password"?/>
14【Java EE】Struts2.1.6与Spring2.5.6框架调整????????????<s:submit?value="submit"?/>
15【Java EE】Struts2.1.6与Spring2.5.6框架调整????????</s:form>
16【Java EE】Struts2.1.6与Spring2.5.6框架调整????</body>
17【Java EE】Struts2.1.6与Spring2.5.6框架调整</html>

welcome.jsp

?1【Java EE】Struts2.1.6与Spring2.5.6框架调整【Java EE】Struts2.1.6与Spring2.5.6框架调整<%【Java EE】Struts2.1.6与Spring2.5.6框架调整@?page?language="java"?contentType="text/html;?charset=GB18030"
?2【Java EE】Struts2.1.6与Spring2.5.6框架调整????pageEncoding="GB18030"%>
?3【Java EE】Struts2.1.6与Spring2.5.6框架调整<!DOCTYPE?html?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"?"http://www.w3.org/TR/html4/loose.dtd">
?4【Java EE】Struts2.1.6与Spring2.5.6框架调整<html>
?5【Java EE】Struts2.1.6与Spring2.5.6框架调整????<head>
?6【Java EE】Struts2.1.6与Spring2.5.6框架调整????????<meta?http-equiv="Content-Type"?content="text/html;?charset=GB18030">
?7【Java EE】Struts2.1.6与Spring2.5.6框架调整????????<title>登录成功</title>
?8【Java EE】Struts2.1.6与Spring2.5.6框架调整????</head>
?9【Java EE】Struts2.1.6与Spring2.5.6框架调整????<body>
10【Java EE】Struts2.1.6与Spring2.5.6框架调整????????用户名:${username?}
11【Java EE】Struts2.1.6与Spring2.5.6框架调整????????<br>
12【Java EE】Struts2.1.6与Spring2.5.6框架调整????????密码:${password?}
13【Java EE】Struts2.1.6与Spring2.5.6框架调整????????<br>
14【Java EE】Struts2.1.6与Spring2.5.6框架调整????</body>
15【Java EE】Struts2.1.6与Spring2.5.6框架调整</html>


(2)建包com.test.manager和com.test.manager.impl分别存放业务逻辑处理的接口和其实现,分别建立接口LoginManager.java和其实现LoginManagerImpl.java
LoginManager.java

1【Java EE】Struts2.1.6与Spring2.5.6框架调整package?com.test.manager;
2【Java EE】Struts2.1.6与Spring2.5.6框架调整
3【Java EE】Struts2.1.6与Spring2.5.6框架调整【Java EE】Struts2.1.6与Spring2.5.6框架调整public?interface?LoginManager?【Java EE】Struts2.1.6与Spring2.5.6框架调整{
4【Java EE】Struts2.1.6与Spring2.5.6框架调整????public?boolean?isLogin(String?username,?String?password);
5【Java EE】Struts2.1.6与Spring2.5.6框架调整}

LoginManagerImpl.java,只是测试用,判断用户名密码是否为intrl、intrl,若是则登录成功

?1【Java EE】Struts2.1.6与Spring2.5.6框架调整package?com.test.manager.impl;
?2【Java EE】Struts2.1.6与Spring2.5.6框架调整
?3【Java EE】Struts2.1.6与Spring2.5.6框架调整import?com.test.manager.LoginManager;
?4【Java EE】Struts2.1.6与Spring2.5.6框架调整
?5【Java EE】Struts2.1.6与Spring2.5.6框架调整【Java EE】Struts2.1.6与Spring2.5.6框架调整public?class?LoginManagerImpl?implements?LoginManager【Java EE】Struts2.1.6与Spring2.5.6框架调整{
?6【Java EE】Struts2.1.6与Spring2.5.6框架调整????public?boolean?isLogin(String?username,?String?password)
?7【Java EE】Struts2.1.6与Spring2.5.6框架调整【Java EE】Struts2.1.6与Spring2.5.6框架调整????【Java EE】Struts2.1.6与Spring2.5.6框架调整{
?8【Java EE】Struts2.1.6与Spring2.5.6框架调整????????if(null!=username&&null!=password&&"intrl".equals(username.trim())&&"intrl".equals(password.trim()))
?9【Java EE】Struts2.1.6与Spring2.5.6框架调整【Java EE】Struts2.1.6与Spring2.5.6框架调整????????【Java EE】Struts2.1.6与Spring2.5.6框架调整{
10【Java EE】Struts2.1.6与Spring2.5.6框架调整????????????return?true;
11【Java EE】Struts2.1.6与Spring2.5.6框架调整????????}
12【Java EE】Struts2.1.6与Spring2.5.6框架调整????????return?false;
13【Java EE】Struts2.1.6与Spring2.5.6框架调整????}
14【Java EE】Struts2.1.6与Spring2.5.6框架调整}

(3)在applicationContext-beans.xml把实现类配置上,以让Spring进行管理

【Java EE】Struts2.1.6与Spring2.5.6框架调整????<bean?id="loginManager"
【Java EE】Struts2.1.6与Spring2.5.6框架调整????????class="com.test.manager.impl.LoginManagerImpl">
【Java EE】Struts2.1.6与Spring2.5.6框架调整????</bean>

(4)创建包com.test.action用于存放action,并新建LoginAction.java,继承ActionSupport类
包含从页面所接收参数username、password,以及业务逻辑处理类LoginManager类型的loginManager,给username和password设置get、set,给loginManager设置set方法,以让Spring为我们自动注入;overwrite父类中的

?1【Java EE】Struts2.1.6与Spring2.5.6框架调整package?com.test.action;
?2【Java EE】Struts2.1.6与Spring2.5.6框架调整
?3【Java EE】Struts2.1.6与Spring2.5.6框架调整import?com.opensymphony.xwork2.ActionSupport;
?4【Java EE】Struts2.1.6与Spring2.5.6框架调整import?com.test.manager.LoginManager;
?5【Java EE】Struts2.1.6与Spring2.5.6框架调整
?6【Java EE】Struts2.1.6与Spring2.5.6框架调整@SuppressWarnings("serial")
?7【Java EE】Struts2.1.6与Spring2.5.6框架调整【Java EE】Struts2.1.6与Spring2.5.6框架调整public?class?LoginAction?extends?ActionSupport?【Java EE】Struts2.1.6与Spring2.5.6框架调整{
?8【Java EE】Struts2.1.6与Spring2.5.6框架调整????private?LoginManager?loginManager;
?9【Java EE】Struts2.1.6与Spring2.5.6框架调整????private?String?username;
10【Java EE】Struts2.1.6与Spring2.5.6框架调整????private?String?password;
11【Java EE】Struts2.1.6与Spring2.5.6框架调整
12【Java EE】Struts2.1.6与Spring2.5.6框架调整【Java EE】Struts2.1.6与Spring2.5.6框架调整????public?String?getUsername()?【Java EE】Struts2.1.6与Spring2.5.6框架调整{
13【Java EE】Struts2.1.6与Spring2.5.6框架调整????????return?username;
14【Java EE】Struts2.1.6与Spring2.5.6框架调整????}
15【Java EE】Struts2.1.6与Spring2.5.6框架调整
16【Java EE】Struts2.1.6与Spring2.5.6框架调整【Java EE】Struts2.1.6与Spring2.5.6框架调整????public?void?setUsername(String?username)?【Java EE】Struts2.1.6与Spring2.5.6框架调整{
17【Java EE】Struts2.1.6与Spring2.5.6框架调整????????this.username?=?username;
18【Java EE】Struts2.1.6与Spring2.5.6框架调整????}
19【Java EE】Struts2.1.6与Spring2.5.6框架调整
20【Java EE】Struts2.1.6与Spring2.5.6框架调整【Java EE】Struts2.1.6与Spring2.5.6框架调整????public?String?getPassword()?【Java EE】Struts2.1.6与Spring2.5.6框架调整{
21【Java EE】Struts2.1.6与Spring2.5.6框架调整????????return?password;
22【Java EE】Struts2.1.6与Spring2.5.6框架调整????}
23【Java EE】Struts2.1.6与Spring2.5.6框架调整
24【Java EE】Struts2.1.6与Spring2.5.6框架调整【Java EE】Struts2.1.6与Spring2.5.6框架调整????public?void?setPassword(String?password)?【Java EE】Struts2.1.6与Spring2.5.6框架调整{
25【Java EE】Struts2.1.6与Spring2.5.6框架调整????????this.password?=?password;
26【Java EE】Struts2.1.6与Spring2.5.6框架调整????}
27【Java EE】Struts2.1.6与Spring2.5.6框架调整
28【Java EE】Struts2.1.6与Spring2.5.6框架调整

读书人网 >J2EE开发

热点推荐