Struts2+Spring整合

Struts2和Spring整合,创建一个OA工程
1、整合struts2
1)导入strut2的jar包:commons-logging-1.0.4.jar,freemarker-2.3.8.jar,ognl-2.6.11.jar,struts2-core-2.0.12.jar,xwork-2.06.jar。暂时导入这些jar包,到时候需要再倒入。
2)将struts.xml文件放置在OA工程的src目录下。
3)在web.xml里面配置struts2用到的核心过滤器。
Xml代码 收藏代码
  1. <filter>
  2. <filter-name>struts2</filter-name>
  3. <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  4. </filter>
  5. <filter-mapping>
  6. <filter-name>struts2</filter-name>
  7. <url-pattern>/*</url-pattern>
  8. </filter-mapping>
2、整合spring
1)导入spring的jar包:spring.jar
2)将applicationContext.xml文件放置在OA工程的WEB-INF目录下。
3)在web.xml里面配置spring用到的监听器。
Xml代码 收藏代码
  1. <listener>
  2. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  3. </listener>

4)添加struts2-spring整合的插件:struts2-spring-plugin-2.0.12.jar,如果不使用这个插件,则需要在struts.xml里面配置:
Xml代码 收藏代码
  1. <constantname="struts.objectFactory"value="org.apache.struts2.spring.StrutsSpringObjectFactory"/>

3、测试struts2和spring整合对不对?
写一个jsp页面login.jsp来测试:
Html代码 收藏代码
  1. <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>
  2. <%@taglibprefix="s"uri="/struts-tags"%>
  3. <!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8">
  7. <title>Inserttitlehere</title>
  8. </head>
  9. <body>
  10. <s:formaction="Login"method="post">
  11. <s:textfieldname="userName"label="userName"></s:textfield>
  12. <s:passwordname="password"label="password"></s:password>
  13. <s:submitlabel="submit"></s:submit>
  14. </s:form>
  15. </body>
  16. </html>
写一个LoginAction
Java代码 收藏代码
  1. packagecom.struts2.action;
  2. importcom.opensymphony.xwork2.ActionSupport;
  3. importcom.struts2.service.LoginService;
  4. publicclassLoginActionextendsActionSupport{
  5. privateLoginServiceloginService;
  6. privateStringuserName;
  7. privateStringpassword;
  8. publicvoidsetLoginService(LoginServiceloginService){
  9. this.loginService=loginService;
  10. }
  11. publicStringgetUserName(){
  12. returnuserName;
  13. }
  14. publicvoidsetUserName(StringuserName){
  15. this.userName=userName;
  16. }
  17. publicStringgetPassword(){
  18. returnpassword;
  19. }
  20. publicvoidsetPassword(Stringpassword){
  21. this.password=password;
  22. }
  23. @Override
  24. publicStringexecute()throwsException{
  25. if(loginService.isLogin(userName,password))
  26. returnSUCCESS;
  27. else
  28. returnINPUT;
  29. }
  30. }
写一个Service
Java代码 收藏代码
  1. packagecom.struts2.service;
  2. publicinterfaceLoginService{
  3. booleanisLogin(StringuserName,Stringpassword);
  4. }

写一个Service的实现
Java代码 收藏代码
  1. packagecom.struts2.service.impl;
  2. importcom.struts2.service.LoginService;
  3. publicclassLoginServiceImplimplementsLoginService{
  4. publicbooleanisLogin(StringuserName,Stringpassword){
  5. if("hello".equals(userName)&&"world".equals(password))
  6. returntrue;
  7. else
  8. returnfalse;
  9. }
  10. }
在struts.xml里面配置:
Xml代码 收藏代码
  1. <packagename="struts2"extends="struts-default">
  2. <actionname="Login"class="loginAction">
  3. <resultname="success">/result.jsp</result>
  4. <resultname="input">/login.jsp</result>
  5. </action>
  6. </package>
在applicationContext.xml里面配置:
Xml代码 收藏代码
  1. <beanid="loginService"class="com.struts2.service.impl.LoginServiceImpl"></bean>
  2. <beanid="loginAction"class="com.struts2.action.LoginAction"scope="prototype">
  3. <propertyname="loginService"ref="loginService"></property>
  4. </bean>
启动tomcat,分别输入hello和world,提交,结果为hello和world。说明struts2和spring整合成功。
分享到:

你可能感兴趣的:(struts2)