`
HotStrong
  • 浏览: 509360 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

MyBatis 3章 MyBatis Spring Struts2 整合应用

阅读更多

 

MyBatis 2章 MyBatis与Spring整合

使用Spring Security实现权限管理

使用ajax gson增强用户体验

 

MyBatis 3章 MyBatis Spring Struts2 整合应用

 

 

 

1、技术目标

 

  • 为项目添加Struts2框架
  • 整合Spring与strtus2
  • 为项目添加jsp页面,操作影片CRUD

 

 

注意:关于strtus2框架其他方面的应用细节不在本文讨论范围

 

2、使用准备

 

2.1) 在项目(Web)中新增如下jar包,struts版本2.2.1.1(本文已提供下载):

 

commons-fileupload-1.2.1.jar

commons-io-1.3.2.jar

commons-logging-1.1.1.jar

freemarker-2.3.16.jar

javassist-3.12.0.GA.jar

ognl-3.0.jar

struts2-core-2.2.1.1.jar

struts2-spring-plugin-2.2.1.1.jar

xwork-core-2.2.1.1.jar

 

2.2)创建如下包,放置struts控制器(Action)代码:

 

com.xxx.web.struts.action

 

2.3)在src下创建Spring配置文件applicationContext-actions.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:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

	<!-- 这里配置Action -->
	
</beans>

 

 

2.4)在src下创建struts2配置文件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>
		<constant name="struts.enable.DynamicMethodInvocation" value="true" />
		<constant name="struts.devMode" value="true" />
		<constant name="struts.i18n.encoding" value="UTF-8" />
		<constant name="struts.objectFactory" value="spring" />
		<constant name="struts.objectFactory.spring.autoWire" value="type" />
		<constant name="struts.ui.theme" value="simple"></constant>
		<package name="film" namespace="/film" extends="struts-default">
			<!-- 设置Action -->
		</package>
</struts>

 

 

 

2.5)web.xml 中配置struts2

 

 

<?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">
	  <welcome-file-list>
	    <welcome-file>index.jsp</welcome-file>
	  </welcome-file-list>
	  
	  	<context-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value>
		</context-param>
		
		<filter>
			<filter-name>struts2</filter-name>
			<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
		</filter>
		<filter-mapping>
			<filter-name>struts2</filter-name>
			<url-pattern>/*</url-pattern>
		</filter-mapping>
		
		<listener>
			<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
		</listener>
	  
	</web-app>

 

 

3、在com.xxx.web.struts.action包下创建类FilmAction,如下:

 

 

package com.xxx.web.struts.action;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.xxx.pojo.Film;
import com.xxx.service.FilmService;

@SuppressWarnings("serial")
public class FilmAction extends ActionSupport implements ModelDriven<Film> {

	//业务逻辑对象
	@Autowired
	private FilmService filmService;
	
	//封装查询结果
	private List<Film> filmList;
	
	//封装页面提交的表单数据
	private Film film = new Film();
	
	/**
	 * 获取所有的电影
	 * @return
	 * @throws Exception
	 */
	public String findFilm() throws Exception {
		
		this.filmList = this.filmService.getAllFilm();
		return SUCCESS;
	}
	
	/**
	 * 根据影片ID获取影片信息
	 * @return
	 * @throws Exception
	 */
	public String detailFilm() throws Exception {

		int id = film.getId().intValue();
		Film film = this.filmService.getFilmById(id);
		this.film.setFname(film.getFname());
		return SUCCESS;
	}
	
	/**
	 * 添加影片
	 * @return
	 * @throws Exception
	 */
	public String insertFilm() throws Exception {

		this.filmService.insertFilm(film);
		return SUCCESS;
	}
	
	/**
	 * 修改影片
	 * @return
	 * @throws Exception
	 */
	public String updateFilm() throws Exception {

		this.filmService.updateFilm(film);
		return SUCCESS;
	}
	
	/**
	 * 删除影片
	 * @return
	 * @throws Exception
	 */
	public String deleteFilm() throws Exception {

		int id = film.getId().intValue();
		this.filmService.deleteFilm(id);
		return SUCCESS;
	}
	
	public Film getModel() {
		return film;
	}

	public List<Film> getFilmList() {
		return filmList;
	}

	public void setFilmList(List<Film> filmList) {
		this.filmList = filmList;
	}

}

 

 

4、在applicationContext-actions.xml中配置FilmAction

 

 

<?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:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

	<!-- 创建FilmAction -->
	<bean id="filmAction"	
		class="com.xxx.web.struts.action.FilmAction"
		scope="prototype"/>
	
</beans>

 

 

5、在struts.xml中配置Action

 

 

<?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>
	<constant name="struts.enable.DynamicMethodInvocation" value="true" />
	<constant name="struts.devMode" value="true" />
	<constant name="struts.i18n.encoding" value="UTF-8" />
	<constant name="struts.objectFactory" value="spring" />
	<constant name="struts.objectFactory.spring.autoWire" value="type" />
	<constant name="struts.ui.theme" value="simple"></constant>
	
	<package name="film" namespace="/film" extends="struts-default">
		
		<!-- 获取所有影片 -->
		<action name="findFilm" class="filmAction" method="findFilm">
			<result name="success">/manager/films.jsp</result>
		</action>
		<!-- 添加影片 -->
		<action name="insertFilm" class="filmAction" method="insertFilm">
			<result name="success" type="redirectAction">findFilm</result>
		</action>
		<!-- 获取影片详情 -->
		<action name="detailFilm" class="filmAction" method="detailFilm">
			<result name="success">/manager/updateFilm.jsp</result>
		</action>
		<!-- 修改影片 -->
		<action name="updateFilm" class="filmAction" method="updateFilm">
			<result name="success" type="redirectAction">findFilm</result>
		</action>
		<!-- 删除影片 -->
		<action name="deleteFilm" class="filmAction" method="deleteFilm">
			<result name="success" type="redirectAction">findFilm</result>
		</action>
		
	</package>
	
</struts>

 

 

6、在WebRoot(页面路径下)创建文件夹manager,在manager下创建3个jsp文件:

 

 

  • films.jsp (查询页面)
  • insertFilm.jsp (添加影片页面)
  • updateFilm.jsp (修改影片页面)

 

6.1)films.jsp代码如下:

 

 

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8" %>
<%@taglib uri="/struts-tags" prefix="s" %>
<%
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>
    <title>信息操作</title>
  </head>
  <body>
    <s:form action="/film/findFilm" method="post">
    	<s:submit value=" 获取所有影片信息 "></s:submit>
    </s:form>
    <a href="<%=basePath %>manager/insertFilm.jsp">添加影片信息</a><br />
    <s:if test="filmList != null">
    	<table border="1" width="40%">
    		<tr>
    			<th>序号</th><th>影片名</th><th>操作</th>
    		</tr>	
	    	<%-- 遍历影片信息 --%>
	    	<s:iterator var="film" value="filmList" status="st">
		    	<tr>
		    		<td><s:property value="#st.index+1" /></td>
		    		<td><s:property value="fname" /></td>
		    		<td>
		    			<s:url id="detailUrl" value="/film/detailFilm">
			                      		<s:param name="id" value="%{id}"/>
			                      	</s:url>
		    			<s:a href="%{detailUrl}">[修改]</s:a>&nbsp;
		    			<s:url id="deleteUrl" value="/film/deleteFilm">
			                      		<s:param name="id" value="%{id}"/>
			                      	</s:url>
		    			<s:a href="%{deleteUrl}">[删除]</s:a>
		    		</td>
		    	</tr>
			</s:iterator>
		</table>
    </s:if>
  </body>
</html>

 

 

6.2)insertFilm.jsp代码如下:

 

 

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8" %>
<%@taglib uri="/struts-tags" prefix="s" %>
<%
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>
    <title>添加影片</title>
  </head>
  <body>
    <s:form action="/film/insertFilm" method="post">
    	<s:textfield name="fname" value="" />
    	<s:submit value=" 添加 "></s:submit>
    </s:form>
  </body>
</html>

 

6.3)updateFilm.jsp代码如下:

 

 

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8" %>
<%@taglib uri="/struts-tags" prefix="s" %>
<%
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>
    <title>修改影片</title>
  </head>
  <body>
    <s:form action="/film/updateFilm" method="post">
    	<s:hidden name="id" />
    	<s:textfield name="fname" />
    	<s:submit value=" 修改 "></s:submit>
    </s:form>
  </body>
</html>

 


提示:本文示例项目已提供下载

 

MyBatis 2章 MyBatis与Spring整合

使用Spring Security实现权限管理

使用ajax gson增强用户体验

 

 

16
4
分享到:
评论
5 楼 herextinct 2015-11-12  
叶殇残雪 写道
您好,怎么没看到mybatis,里面的configuration.xml和mapper呢

确实缺少这些。
4 楼 叶殇残雪 2014-10-30  
您好,怎么没看到mybatis,里面的configuration.xml和mapper呢
3 楼 qq4285855 2014-07-08  
也提供一个sql脚本啊
2 楼 yao37duman 2012-10-13  
222222
1 楼 chitu11 2011-12-27  
我是第11111位访客!

相关推荐

    Mybatis3+Spring4 +Struts2整合源码

    【标题】"Mybatis3+Spring4 +Struts2整合源码"是一个示例项目,展示了这三大流行Java Web框架的集成与协作。Mybatis3是轻量级的持久层框架,Spring4则是一个全面的企业级应用框架,而Struts2则作为MVC架构的一部分,...

    struts2_mybatis_spring_框架实例整合_数据库 文档

    Struts2、MyBatis和Spring是Java Web开发中常用的三大框架,它们分别负责MVC模式中的Action层、数据持久层和应用上下文管理。这篇文档将深入探讨如何将这三个框架整合在一起,以及如何结合数据库进行实际应用。 ...

    spring3.2.6struts2.3.15MyBatis3整合DEMO

    《Spring 3.2.6、Struts 2.3.15与MyBatis 3整合实战详解》 在Java Web开发领域,Spring、Struts和MyBatis是三大主流框架,它们各自承担着不同的职责,共同构建了一个强大的企业级应用开发环境。本DEMO以Spring ...

    spring-mybatis-struts2-master ——demo

    《SSM框架整合详解——基于spring-mybatis-struts2-master的实战分析》 在Java Web开发领域,SSM(Spring、Struts2、MyBatis)框架的组合被广泛使用,因其灵活性和强大的功能而备受青睐。本篇文章将深入探讨这个...

    struts2+spring+mybatis+easyui的实现

    总的来说,"struts2+spring+mybatis+easyui"的实现是一个标准的Java Web项目结构,它利用Maven进行构建管理,通过整合四个组件,实现了后端的业务逻辑处理、数据访问和前端的用户界面展示。这种架构在实际开发中具有...

    struts2+spring+mybatis框架

    Struts2、Spring和MyBatis是Java Web开发中经典的三大框架,它们组合起来可以构建出高效、可维护的Web应用程序。以下是对这三个框架及其整合的详细解释。 **Struts2框架** Struts2是一个基于MVC(Model-View-...

    spring3、struts2、mybatis结合的一个简单web实现

    总结起来,"spring3、struts2、mybatis结合的一个简单web实现"项目展示了如何将这些框架集成到一起,以构建一个完整的Java Web应用。Struts2处理请求,Spring管理业务逻辑和依赖,MyBatis处理数据持久化,而Tiles则...

    spring4 struts2 mybatis3 maven3 整合

    总之,"spring4 struts2 mybatis3 maven3 整合"是一种常见的Java Web开发模式,它利用Spring的全面性、Struts 2的MVC架构、MyBatis的灵活SQL以及Maven的项目管理能力,构建出高效、易维护的企业级应用。通过这样的...

    mybatis3+spring4+struts2.3整合jar

    标题 "mybatis3+spring4+struts2.3整合jar" 暗示了这是一个包含MyBatis 3、Spring 4和Struts 2.3框架集成的Java项目压缩包。这些技术是Java Web开发中常用的组件,用于构建高效、可维护的Web应用程序。以下是对每个...

    struts2 spring3 mybatis3整合简单例子

    标题 "struts2 spring3 mybatis3整合简单例子" 涉及到的是Java Web开发中的三大主流框架——Struts2、Spring3和MyBatis3的整合应用。这是一个常见的企业级开发组合,用于构建高效、灵活的后端服务。 Struts2是一个...

    struts2+mybatis+spring3框架整合

    通过以上介绍,我们可以看到,Struts2、MyBatis和Spring3的整合提供了强大的功能,能够有效地组织和管理复杂的Java Web应用程序。理解并熟练运用这些框架,可以提升开发者的专业技能,为开发高质量的Web应用打下坚实...

    mybatis3.0+spring3.0+struts2整合开发的一个小权限管理系统

    mybatis3.0+spring3.0+struts2整合开发的一个小权限管理系统,里面有搜索提示功能,导入导出excel文件,ajax异步刷新,拦截器控制,freemarker等,表关系很复杂,特附上表关系图

    Spring、Hibernat、struts2、mybatis分别需要的jar包

    在Java Web开发中,Spring、Hibernate、Struts2和MyBatis是四个非常重要的框架,它们各自负责不同的职责,但通常被组合在一起使用,形成所谓的"SSH"或"SSM"(Spring、Struts2、Hibernate)或者"SSHM"(Spring、...

    Struts2+mybatis3+spring3整合

    Struts2、MyBatis3和Spring3是Java Web开发中的三大...以上就是Struts2、MyBatis3和Spring3整合的基础知识和在一个Student管理小案例中的具体应用。通过这样的整合,开发者可以构建出功能强大、结构清晰的Web应用程序。

    Struts2+maven+spring+mybatis整合实现注册功能实例

    Struts2、Maven、Spring和MyBatis是Java Web开发中的四大框架,它们的整合应用可以构建出高效、模块化的应用程序。这个实例是关于如何将这些技术融合在一起,实现一个用户注册的功能。 首先,Struts2是一个基于MVC...

    mybatis-struts2-spring整合

    首先,整合MyBatis、Struts2和Spring的主要目的是实现松耦合、高可维护性的Web应用程序。通过Spring的IoC容器,我们可以管理这三个框架的组件,如数据源、SqlSessionFactory、Mapper接口等,使得它们之间的依赖关系...

    spring3 struts2 Mybatis3 组件注解 事务注解 实例

    在这个"spring3+struts2+Mybatis3"的实例中,你将学习如何集成这三个框架,创建一个完整的Java Web应用。首先,你需要在MySQL数据库中创建名为TEST的表,包含id和name两个字段,确保表引擎为InnoDB,因为InnoDB支持...

    MyBatis+struts2+spring+mysql整合增删改查

    总之,MyBatis+Struts2+Spring+MySQL的整合为Web应用开发提供了一套高效、灵活的解决方案,能够帮助开发者快速构建功能丰富的应用程序。通过熟练掌握这一技术栈,可以大大提高开发效率,降低维护成本。

    SSM(Spring+Struts2+Mybatis)整合步骤

    SSM(Spring+Struts2+Mybatis)整合步骤 纯手写

    MyBatis+Struts2+Spring 增删改查

    【SSM实践:MyBatis+Struts2+Spring整合应用】 在Web开发领域,MyBatis、Struts2和Spring是三个非常重要的框架,它们分别负责数据持久化、前端控制器和依赖注入与业务逻辑管理。这三者相结合,可以构建出高效、可...

Global site tag (gtag.js) - Google Analytics