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配置就完成了.下面来做个测试.
分享到:
相关推荐
Maven+spring+ struts2+ Ibatis+mysql整合增删改查
三,下载lib1,lib2,解压缩发到flex+spring+struts2+ibatis 整合的eclipse工程的lib下 四,导入该项目到eclipse并部署到tomcat下 五,右击该项目进入properties中,点击Flex Build Path,把Output folder 中的C:\...
使用ibatis+spring+struts2 做的开发例子 帮助大家一起学习ibatis的整合
是将struts2+spring3+iBATIS进行整合。
struts2+spring+ibatis整合项目实例
NULL 博文链接:https://sunxiang0918.iteye.com/blog/269771
maven3+struts2+spring+ibatis,本来是用maven3+struts2+spring+hibernate但考虑到hibernate在多表级联查询的时候执行效率不高,所以改用性能更好不过sql比较麻烦的的ibatis,本项目只有登录和插入数据,仅供参考: ...
Spring+struts2+ibatis整合demo,包括源代码,jar包等,此demo非maven项目,由于是以前整理的,可能有些老,但适合学习。
maven构建项目,简单的struts2、spring、mybatis结构实现,页面展示用的easyui
一个完整的Spring+ Struts+Ibatis 应用框架整合的小例子,项目中使用的数据库为MySQL,表结构在文档贴出,可以自己照着例子做一下。
项目需要,可直接拿来用。本人花了一个礼拜心血搞的。有点,如果是发布到tomcat55上面可能要删掉验证xml的jar包才能正确运行
Struts2 Spring Ibatis实例整合 里面实现了用户登录注册查询删除 认真体会里面的架构
Struts2+Spring+Ibatis ,里面实现了登录功能, 可供初学者学习,代码很详细, 注释很多, 还可以用于做项目
struts2+ibatis+spring+Hessian 整合项目 web项目整合,服务端用hessian协议远程调用服务端的方法,hessian是用spring代理整合,struts2+ibatis+spring的整合项目,用作学习和开发基础平台构建很有用处,工程导入...
目标:WEB项目-集成Flex3+BlazeDS3.2+Spring2.5.6+iBatis2.3.4+Struts2.1.8,重在整合Spring与Struts2,并采用托管的方式,即Struts2 action托管于Spring 优点:这是一种保守的混合开发模式,既充分利用了原有的...
博文链接:https://klygit.iteye.com/blog/215011
Struts2+Spring+Ibatis项目
这是一个struts2+spring+ibatis项目中需要的jar包,其中包括很多其他包,例如:发邮件需要的包,dwr包,等。
struts2 spring ibatis 项目整合源码
struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码