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

Spring+Struts2+IBatis 项目整合(三)

    博客分类:
  • J2EE
阅读更多

7.在com.dbke.hrms.spring.logic 包下 建立外观接口 HRMSFacade.java :

 

package com.dbke.hrms.spring.logic;

import java.util.List;

import com.dbke.hrms.ibatis.domain.TDept;

public interface HRMSFacade {

	/**
	 * 显示所有的部门
	 * @return
	 */
	public List<TDept> findAllDept();
	
	/**
	 * 根据部门Id查看部门
	 * @param deptId
	 * @return
	 */
	public TDept findDeptById(Integer deptId);
	
	/**
	 * 增加一个部门
	 * @param dept	部门对象
	 * @return
	 */
	public Integer insertOneDept(TDept dept);
	
	/**
	 * 增加一个部门
	 * @param vcDeptCode
	 * @param vcDeptName
	 * @param vcDeptAddress
	 * @param vcDeptTelphone
	 * @param vcDeptDesc
	 * @return
	 */
	public Integer insertOneDept(String vcDeptCode,String vcDeptName,String vcDeptAddress,String vcDeptTelphone,String vcDeptDesc);
	
	/**
	 * 一次增加若干部门
	 * @param deptList
	 * @return
	 */
	public Integer insertDepts(List<TDept> deptList);
	
	/**
	 * 验证部门名称是否有效
	 * @param deptName
	 * @return true为有效可用,false为无效
	 */
	public boolean validateDeptName(String deptName);
	
	/**
	 * 验证部门编号是否有效
	 * @param deptCode
	 * @return true为有效可用,false为无效
	 */
	public boolean validateDeptCode(String deptCode);
	

}

  8.在 com.dbke.hrms.spring.logic 实现外观接口 HRMSFacadeImpl.java:

 

package com.dbke.hrms.spring.logic;

import java.util.List;

import com.dbke.hrms.ibatis.domain.TDept;
import com.dbke.hrms.struts.service.DeptService;

public class HRMSFacadeImpl implements HRMSFacade{
	
	private DeptService deptService;

	public void setDeptService(DeptService deptService) {
		this.deptService = deptService;
	}

	@Override
	public Integer insertDepts(List<TDept> deptList) {
		// TODO Auto-generated method stub
		return this.deptService.insertDepts(deptList);
	}

	@Override
	public Integer insertOneDept(String vcDeptCode, String vcDeptName,
			String vcDeptAddress, String vcDeptTelphone, String vcDeptDesc) {
		// TODO Auto-generated method stub
		return this.deptService.insertOneDept(vcDeptCode, vcDeptName, vcDeptAddress, vcDeptTelphone, vcDeptDesc);
	}

	@Override
	public Integer insertOneDept(TDept dept) {
		// TODO Auto-generated method stub
		return this.deptService.insertOneDept(dept);
	}

	@Override
	public List<TDept> findAllDept() {
		// TODO Auto-generated method stub
		return this.deptService.findAllDept();
	}

	@Override
	public TDept findDeptById(Integer deptId) {
		// TODO Auto-generated method stub
		return this.deptService.findDeptById(deptId);
	}

	@Override
	public boolean validateDeptCode(String deptCode) {
		// TODO Auto-generated method stub
		return this.deptService.validateDeptCode(deptCode);
	}

	@Override
	public boolean validateDeptName(String deptName) {
		// TODO Auto-generated method stub
		return this.deptService.validateDeptName(deptName);
	}
	
	
	
}

   到此,spring就暂时结束了.接下来配置struts2

 

三.struts2:

    1.导入 backport-util-concurrent-3.0.jar freemarker-2.3.12.jar struts2-core-2.0.12.jar struts2-spring-plugin-2.0.12.jar  xwork-2.0.6.jar 到WEB-INF/lib

    2.修改WEB-INF/下的 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">
	
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
	</filter>
	<!-- FilterDispatcher 用来初始化 strtus2 并且处理所有的 web 请求 -->
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	 
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
 

    3.在src目录下 建立配置文件 struts.properties:

 

struts.devMode = true
struts.enable.DynamicMethodInvocation = false
struts.objectTypeDeterminer = notiger
struts.objectFactory = spring

    4.在src目录下 建立配置文件 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.objectTypeDeterminer" value="notiger" />      
     <constant name="struts.objectFactory" value="spring" />   
     <constant name="struts.objectFactory.spring.autoWire" value="name" />   
        
     <include file="struts-default.xml"/>
     
     <!-- struts2的Action配置 -->
     <package name="hrms" extends="struts-default">
     
        <action name="showEmployee" class="showEmployeeClass">
            <result name="success">/index.jsp</result>
        </action>
        
        <action name="showDept" class="showDeptClass">
            <result name="success">/index.jsp</result>
            <result name="error">/error.jsp</result>
        </action>
        
        <!-- Add your actions here -->
    </package>

</struts>

  5.在com.dbke.hrms.struts.service 编写业务逻辑组件的接口 DeptService.java

package com.dbke.hrms.struts.service;

import java.util.List;

import com.dbke.hrms.ibatis.domain.TDept;

public interface DeptService {
	
	/**
	 * 显示所有的部门
	 * @return
	 */
	public List<TDept> findAllDept();
	
	/**
	 * 根据部门Id查看部门
	 * @param deptId
	 * @return
	 */
	public TDept findDeptById(Integer deptId);
	
	/**
	 * 增加一个部门
	 * @param dept	部门对象
	 * @return
	 */
	public Integer insertOneDept(TDept dept);
	
	/**
	 * 增加一个部门
	 * @param vcDeptCode
	 * @param vcDeptName
	 * @param vcDeptAddress
	 * @param vcDeptTelphone
	 * @param vcDeptDesc
	 * @return
	 */
	public Integer insertOneDept(String vcDeptCode,String vcDeptName,String vcDeptAddress,String vcDeptTelphone,String vcDeptDesc);
	
	/**
	 * 一次增加若干部门
	 * @param deptList
	 * @return
	 */
	public Integer insertDepts(List<TDept> deptList);
	
	/**
	 * 验证部门名称是否有效
	 * @param deptName
	 * @return true为有效可用,false为无效
	 */
	public boolean validateDeptName(String deptName);
	
	/**
	 * 验证部门编号是否有效
	 * @param deptCode
	 * @return true为有效可用,false为无效
	 */
	public boolean validateDeptCode(String deptCode);
}

 6.在com.dbke.hrms.struts.service.impl 编写业务逻辑组件的实现 DeptServiceImpl.java

 

package com.dbke.hrms.struts.service.impl;

import java.util.List;

import com.dbke.hrms.ibatis.dao.TDeptDao;
import com.dbke.hrms.ibatis.domain.TDept;
import com.dbke.hrms.struts.service.DeptService;

public class DeptServiceImpl implements DeptService {
	
	/*spring注入的dao*/
	private TDeptDao deptDao;
	
	public void setDeptDao(TDeptDao deptDao) {
		this.deptDao = deptDao;
	}

	@Override
	public Integer insertDepts(List<TDept> deptList) {
		// TODO Auto-generated method stub
		
		for (TDept dept : deptList) {
			this.insertOneDept(dept);
		}
		
		return 0;
	}

	@Override
	public Integer insertOneDept(TDept dept) {
		// TODO Auto-generated method stub
		if (!this.validateDeptName(dept.getVcDeptName())) {
			throw new RuntimeException("部门名称重复");
		}
		
		if (!this.validateDeptCode(dept.getVcDeptCode())) {
			throw new RuntimeException("部门编号名称重复");
		}
		
		return deptDao.insertDept(dept);
	}

	@Override
	public Integer insertOneDept(String vcDeptCode, String vcDeptName,
			String vcDeptAddress, String vcDeptTelphone, String vcDeptDesc) {
		// TODO Auto-generated method stub
		
		TDept dept=new TDept();
		dept.setVcDeptAddress(vcDeptAddress);
		dept.setVcDeptCode(vcDeptCode);
		dept.setVcDeptDesc(vcDeptDesc);
		dept.setVcDeptName(vcDeptName);
		dept.setVcDeptTelphone(vcDeptTelphone);
		
		return this.insertOneDept(dept);
	}

	@Override
	public List<TDept> findAllDept() {
		// TODO Auto-generated method stub
		return deptDao.findAllDept();
	}
	
	
	@Override
	public TDept findDeptById(Integer deptId) {
		// TODO Auto-generated method stub
		return deptDao.findDeptById(deptId);
	}

	@Override
	public boolean validateDeptName(String deptName) {
		// TODO Auto-generated method stub
		if (deptDao.findDeptByName(deptName)==null) {
			return true;
		}else {
			return false;
		}	
	}

	@Override
	public boolean validateDeptCode(String deptCode) {
		// TODO Auto-generated method stub
		if (deptDao.findDeptByCode(deptCode)==null) {
			/*验证部门编号长度是否是3的整数倍*/
			if (deptCode.length()%3!=0) {
				return false;
			}
			return true;
		}else {
			return false;
		}
	}	
	
}

  7.在com.dbke.hrms.struts.action 编写action类 ShowDeptAction.java:

 

package com.dbke.hrms.struts.action;

import java.util.ArrayList;
import java.util.List;

import com.dbke.hrms.ibatis.domain.TDept;
import com.dbke.hrms.spring.logic.HRMSFacade;
import com.opensymphony.xwork2.Action;

public class ShowDeptAction implements Action{

private HRMSFacade hrmsFacade;
	
	public void setHrmsFacade(HRMSFacade hrmsFacade) {
		this.hrmsFacade = hrmsFacade;
	}
	
	/*Struts2的输入参数值*/
	private int di;		//deptID
	
	public int getDi() {
		return di;
	}

	public void setDi(int di) {
		this.di = di;
	}

	/*Struts2的返回值*/
	private TDept dept;
	
	public TDept getDept() {
		return dept;
	}

	public void setDept(TDept dept) {
		this.dept = dept;
	}

	@Override
	public String execute() throws Exception {
		// TODO Auto-generated method stub
		dept=hrmsFacade.findDeptById(di);
		
		
		
		TDept dept1=new TDept();
		dept1.setVcDeptName("重庆分公司");
		dept1.setVcDeptCode("001002");
		dept1.setVcDeptAddress("重庆");
		
//		hrmsFacade.addOneDept(dept1);
		
		TDept dept2=new TDept();
		dept2.setVcDeptName("广州分公司");
		dept2.setVcDeptCode("001003");
		dept2.setVcDeptAddress("广州");
		
		List<TDept> deptList=new ArrayList<TDept>();
		deptList.add(dept2);
		deptList.add(dept1);
		
		try {
			hrmsFacade.insertDepts(deptList);
		} catch (RuntimeException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return ERROR;
		}
		
		return SUCCESS;
	}
	
}

 

8.在 WEB-INF 下编写配置文件 Struts2ActionConfig.xml:

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">

<beans>

	<!-- Struts2 action类 -->
	<bean id="showEmployeeClass" class="com.dbke.hrms.struts.action.ShowEmployeeAction" >
		<property name="hrmsFacade" ref="hrmsFacade" />
	</bean>
	
	<bean id="showDeptClass" class="com.dbke.hrms.struts.action.ShowDeptAction" >
		<property name="hrmsFacade" ref="hrmsFacade" />
	</bean>
</beans>

   到此,struts2配置就完成了.下面来做个测试.

 

 

分享到:
评论

相关推荐

    spring+struts2+ibatis整合的jar包

    在提供的"spring+struts2+ibatis整合的jar包"中,lib1可能包含了这三个框架以及它们的依赖库。这些jar文件是运行整合应用必不可少的组件,它们包含了框架的API、实现和一些工具类,帮助开发者快速搭建和运行整合项目...

    flex+spring+struts2+ibatis 整合的eclipse工程

    三,下载lib1,lib2,解压缩发到flex+spring+struts2+ibatis 整合的eclipse工程的lib下 四,导入该项目到eclipse并部署到tomcat下 五,右击该项目进入properties中,点击Flex Build Path,把Output folder 中的C:\...

    Spring+Struts2+IBatis 项目整合(四)

    在本项目整合中,我们将探讨如何将三个著名的技术框架——Spring、Struts2和IBatis——集成在一起,创建一个高效且灵活的企业级Web应用程序。这个整合通常被称为SSH(Spring、Struts2、Hibernate或iBatis)框架栈,...

    Spring+Struts2+Ibatis整合例子

    但是,你可以参考上述的整合步骤,结合实际的项目需求,配置自己的Spring、Struts2和iBatis环境。记得在配置文件中仔细设置各个框架的连接,以确保它们能够协同工作。在开发过程中,合理利用这三个框架的优点,可以...

    Maven+spring+ struts2+ Ibatis+mysql整合增删改查

    "Maven+Spring+Struts2+Ibatis+MySQL"就是一个常见的企业级Java Web开发组合,它们各自扮演着不同的角色,共同构建了一个功能强大的应用程序。下面我们将详细探讨这些技术及其在整合中的作用。 **Maven** Maven是...

    spring3+struts2+ibatis

    《Spring3+Struts2+Ibatis:企业级应用开发框架整合详解》 在现代企业级Web应用开发中,Spring、Struts2和Ibatis是常见的三大组件,它们各自负责不同的职责,共同构建出高效、灵活的应用架构。Spring作为全能型的...

    Spring+Struts2+Ibatis

    Spring、Struts2和iBatis是Java Web开发中的三个重要框架,它们分别负责不同的职责。Spring是一个全面的后端应用程序框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能;Struts2则是一个MVC(模型-视图-控制器...

    Spring+Struts+ibatis讲解

    在Spring+Struts+ibatis这种经典的Java Web开发框架组合中,主要涉及到三层架构:表现层(Action)、业务逻辑层(Service)和数据访问层(DAO)。这些组件协同工作,实现了应用程序的功能。以下是对各部分的详细解释...

    struts2+spring+Ibatis框架包

    Struts2、Spring和iBatis是Java Web开发中三个非常重要的开源框架,它们共同构建了一个灵活、可扩展且高效的应用程序开发环境。这个“struts2+spring+iBatis框架包”集成了这三个框架,使得开发者能够快速构建基于...

    spring+struts+ibatis

    - lib:存放项目所需的第三方库,如Spring、Struts2、iBatis和ExtJS的jar包。 整合SSM框架需要正确配置各个框架的配置文件,确保它们之间能够协同工作。例如,Spring需要配置Bean定义,Struts2需要配置Action和...

    struts2+spring3+ibatis项目整合案例

    在这个“struts2+spring3+ibatis项目整合案例”中,我们将深入探讨这三个框架如何相互配合,实现项目的集成。 Struts2作为MVC(Model-View-Controller)架构的实现,主要负责处理用户请求,控制应用的流程。它提供...

    ibatis+spring+struts2 整合开发例子

    这个"ibatis+spring+struts2 整合开发例子"可以帮助初学者理解如何在实际项目中运用这三个框架,通过实践加深理解,提高开发技能。在实际项目中,这样的集成方式可以提供强大的功能,同时保持代码的清晰和模块化。...

    spring+struts2+ibatis简单例子

    在IT行业中,Spring、Struts2和iBatis是三个非常重要的开源框架,它们分别在不同的层面上解决了Java Web开发中的问题。Spring作为一款全面的后端应用框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能;Struts...

    ibatis+Spring+struts2整合实例

    本实例关注的是“ibatis+Spring+struts2”的整合,这是一个经典的Java Web开发组合,用于实现数据访问、业务逻辑控制和用户界面交互。下面我们将深入探讨这三个组件及其整合的关键知识点。 1. **iBATIS**:iBATIS...

    struts2+spring+ibatis整合项目实例

    Struts2、Spring和iBatis是Java Web开发中常用的三个开源框架,它们各自负责不同的职责,协同工作可以构建出高效、松耦合的Web应用。这个整合项目实例旨在展示如何将这三个框架集成到一起,以实现更强大的功能。 1....

    Spring + Struts2 + iBatis + Eclipse 整合

    【Spring + Struts2 + iBatis + Eclipse 整合】是Java Web开发中的经典组合,这个整合项目为初学者提供了深入理解这四个组件协同工作的机会。以下将详细阐述这四个关键技术及其整合过程中的关键知识点。 1. Spring...

    maven3+struts2+spring+ibatis

    maven3+struts2+spring+ibatis,本来是用maven3+struts2+spring+hibernate但考虑到hibernate在多表级联查询的时候执行效率不高,所以改用性能更好不过sql比较麻烦的的ibatis,本项目只有登录和插入数据,仅供参考: ...

    Struts2+Spring+Hibernate和Struts2+Spring+Ibatis

    Struts2+Spring+Hibernate和Struts2+Spring+Ibatis是两种常见的Java Web应用程序集成框架,它们分别基于ORM框架Hibernate和轻量级数据访问框架Ibatis。这两种框架结合Spring,旨在提供一个强大的、可扩展的、易于...

    Struts+Spring+Ibatis整合的Jar包

    这个"SSI"整合的Jar包,为开发者提供了一个快速搭建基于Struts2、Spring和Ibatis的开发环境,节省了手动下载和配置各个框架的时间,便于项目初始化和快速启动。开发者只需关注业务逻辑的实现,无需过多关注底层框架...

    Struts2+spring+ibatis三大框架整合实例

    Struts2、Spring和iBatis是Java Web开发中常用的三大框架,它们分别负责MVC模式中的Action层、业务逻辑层和服务数据访问层。本文将详细介绍这三个框架如何整合,以及在实际项目中如何运用。 首先,Struts2作为表现...

Global site tag (gtag.js) - Google Analytics