Struts2 与 Spring 集成实例
2010-08-17 18:23
405 查看
web.xml文件:
struts.xml文件:
专门用于配置service层的applicationContxt-service.xml:
(说明:实际的项目开发中,为了提高模块化程度,可以定义多个这样的service Bean配置文件)
为了将Action实例也由Spring的Ioc容器管理,就要将action也当作普通的bean来处理,所以有下面这个bean配置文件,专门为配置action的配置文件:
applicaitonContext-action.xml:
(说明:这样的文件也可以多个,方便模块化管理,提高维护性)
SearchBookAction.java
bookSearch.jsp:
bookSearchResult.jsp
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
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="book" extends="struts-default"> <action name="searchBook" class="searchBookAction"> <result name="success">/bookSearchResult.jsp</result> </action> </package> </struts>
专门用于配置service层的applicationContxt-service.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <bean id="bookService" class="com.liuxi.service.impl.BookServiceImpl"/> </beans>
(说明:实际的项目开发中,为了提高模块化程度,可以定义多个这样的service Bean配置文件)
为了将Action实例也由Spring的Ioc容器管理,就要将action也当作普通的bean来处理,所以有下面这个bean配置文件,专门为配置action的配置文件:
applicaitonContext-action.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <bean id="searchBookAction" class="com.liuxi.action.SearchBookAction"> <property name="bookService" ref="bookService"/> </bean> </beans>
(说明:这样的文件也可以多个,方便模块化管理,提高维护性)
SearchBookAction.java
package com.liuxi.action; import com.liuxi.bean.Book; import com.liuxi.service.BookService; import com.opensymphony.xwork2.ActionContext; import org.apache.struts2.ServletActionContext; public class SearchBookAction { private BookService bookService; private String bookName; public SearchBookAction(){ } public String getBookName() { return bookName; } public void setBookName(String bookName) { this.bookName = bookName; } public void setBookService(BookService bookService) { this.bookService = bookService; } public String execute() { System.out.println("action.execute()"); System.out.println("bookName:"+this.getBookName()); Book b=bookService.findBookByName(this.getBookName()); if(b==null){ ServletActionContext.getRequest().setAttribute("msg", "你查找的书不存在"); }else{ ServletActionContext.getRequest().setAttribute("book",b); } return "success"; } }
bookSearch.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'bookSearch.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css" mce_href="styles.css"> --> </head> <body> <s:form action="searchBook"> <s:textfield label="书名" name="bookName"></s:textfield> <s:submit value="搜索"/> </s:form> </body> </html>
bookSearchResult.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <%@ page import="com.liuxi.bean.Book" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'bookSearchResult.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> </head> <body> <% Book b=(Book)request.getAttribute("book"); String msg=(String)request.getAttribute("msg"); if(msg!=null){ %> <%=msg %> <% return; }else{ %> <%=b.getId() %><br/> <%=b.getName() %><br/> <% } %> </body> </html>
相关文章推荐
- Struts2集成spring3后action的几种实例方法
- Struts2 与 Spring 集成实例
- struts2 Spring4 hiberante4 shiro2集成实例
- S2SH的集成(Struts2,Spring,Hibernate)----青软S2SH(笔记)
- Struts2 本是非单例的,与Spring集成就默认为单例
- struts2整合spring应用实例
- struts2与spring集成时action的class属性设置
- 一个CXF集成SPRING的WEBSERVICE完整实例
- struts2 与 spring集成原因 详解
- springMVC基础及实例(三)springMVC与spring集成
- springboot 集成hibernate 集成struts2
- 在已有spring的基础上集成hibernate的实例讲解
- memcache与spring集成 实例
- Springboot+logback集成ELK处理日志实例
- Struts2 Spring3 Hibernate3 菜鸟教程 集成注解版本
- Struts2 与 Spring 的集成
- Spring与Quartz集成实例
- springboot集成mybatis实例代码
- 在Struts2中集成Spring详细讲解
- 利用resteasy框架构建rest webservice----第四波:resteasy与spring真正集成发布我们的restful webservice 服务(实例、教程)