您的位置:首页 > 编程语言 > Java开发

Struts2 与 Spring 集成实例

2010-08-17 18:23 405 查看
web.xml文件:

<?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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: