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包"中,lib1可能包含了这三个框架以及它们的依赖库。这些jar文件是运行整合应用必不可少的组件,它们包含了框架的API、实现和一些工具类,帮助开发者快速搭建和运行整合项目...
三,下载lib1,lib2,解压缩发到flex+spring+struts2+ibatis 整合的eclipse工程的lib下 四,导入该项目到eclipse并部署到tomcat下 五,右击该项目进入properties中,点击Flex Build Path,把Output folder 中的C:\...
在本项目整合中,我们将探讨如何将三个著名的技术框架——Spring、Struts2和IBatis——集成在一起,创建一个高效且灵活的企业级Web应用程序。这个整合通常被称为SSH(Spring、Struts2、Hibernate或iBatis)框架栈,...
但是,你可以参考上述的整合步骤,结合实际的项目需求,配置自己的Spring、Struts2和iBatis环境。记得在配置文件中仔细设置各个框架的连接,以确保它们能够协同工作。在开发过程中,合理利用这三个框架的优点,可以...
"Maven+Spring+Struts2+Ibatis+MySQL"就是一个常见的企业级Java Web开发组合,它们各自扮演着不同的角色,共同构建了一个功能强大的应用程序。下面我们将详细探讨这些技术及其在整合中的作用。 **Maven** Maven是...
《Spring3+Struts2+Ibatis:企业级应用开发框架整合详解》 在现代企业级Web应用开发中,Spring、Struts2和Ibatis是常见的三大组件,它们各自负责不同的职责,共同构建出高效、灵活的应用架构。Spring作为全能型的...
Spring、Struts2和iBatis是Java Web开发中的三个重要框架,它们分别负责不同的职责。Spring是一个全面的后端应用程序框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能;Struts2则是一个MVC(模型-视图-控制器...
在Spring+Struts+ibatis这种经典的Java Web开发框架组合中,主要涉及到三层架构:表现层(Action)、业务逻辑层(Service)和数据访问层(DAO)。这些组件协同工作,实现了应用程序的功能。以下是对各部分的详细解释...
Struts2、Spring和iBatis是Java Web开发中三个非常重要的开源框架,它们共同构建了一个灵活、可扩展且高效的应用程序开发环境。这个“struts2+spring+iBatis框架包”集成了这三个框架,使得开发者能够快速构建基于...
- lib:存放项目所需的第三方库,如Spring、Struts2、iBatis和ExtJS的jar包。 整合SSM框架需要正确配置各个框架的配置文件,确保它们之间能够协同工作。例如,Spring需要配置Bean定义,Struts2需要配置Action和...
在这个“struts2+spring3+ibatis项目整合案例”中,我们将深入探讨这三个框架如何相互配合,实现项目的集成。 Struts2作为MVC(Model-View-Controller)架构的实现,主要负责处理用户请求,控制应用的流程。它提供...
这个"ibatis+spring+struts2 整合开发例子"可以帮助初学者理解如何在实际项目中运用这三个框架,通过实践加深理解,提高开发技能。在实际项目中,这样的集成方式可以提供强大的功能,同时保持代码的清晰和模块化。...
在IT行业中,Spring、Struts2和iBatis是三个非常重要的开源框架,它们分别在不同的层面上解决了Java Web开发中的问题。Spring作为一款全面的后端应用框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能;Struts...
本实例关注的是“ibatis+Spring+struts2”的整合,这是一个经典的Java Web开发组合,用于实现数据访问、业务逻辑控制和用户界面交互。下面我们将深入探讨这三个组件及其整合的关键知识点。 1. **iBATIS**:iBATIS...
Struts2、Spring和iBatis是Java Web开发中常用的三个开源框架,它们各自负责不同的职责,协同工作可以构建出高效、松耦合的Web应用。这个整合项目实例旨在展示如何将这三个框架集成到一起,以实现更强大的功能。 1....
【Spring + Struts2 + iBatis + Eclipse 整合】是Java Web开发中的经典组合,这个整合项目为初学者提供了深入理解这四个组件协同工作的机会。以下将详细阐述这四个关键技术及其整合过程中的关键知识点。 1. Spring...
maven3+struts2+spring+ibatis,本来是用maven3+struts2+spring+hibernate但考虑到hibernate在多表级联查询的时候执行效率不高,所以改用性能更好不过sql比较麻烦的的ibatis,本项目只有登录和插入数据,仅供参考: ...
Struts2+Spring+Hibernate和Struts2+Spring+Ibatis是两种常见的Java Web应用程序集成框架,它们分别基于ORM框架Hibernate和轻量级数据访问框架Ibatis。这两种框架结合Spring,旨在提供一个强大的、可扩展的、易于...
这个"SSI"整合的Jar包,为开发者提供了一个快速搭建基于Struts2、Spring和Ibatis的开发环境,节省了手动下载和配置各个框架的时间,便于项目初始化和快速启动。开发者只需关注业务逻辑的实现,无需过多关注底层框架...
Struts2、Spring和iBatis是Java Web开发中常用的三大框架,它们分别负责MVC模式中的Action层、业务逻辑层和服务数据访问层。本文将详细介绍这三个框架如何整合,以及在实际项目中如何运用。 首先,Struts2作为表现...