spring+struts+ibatis

2023-10-26

原来的系统里面只采用了struts的框架,并且没有使用struts的校验功能,为方便开发,修改框架为spring+struts+ibatis组合
1、添加需要的jar文件
2、添加spring配置文件applicationContext.xml,内容如下
<?xml version="1.0" encoding="gb2312"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
    <bean id="transactionManager"     <property name="dataSource" ref="dataSource"/>
    </bean>
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="get*" read-only="true"/>
            <tx:method name="query*" read-only="true"/>
            <tx:method name="*"/>
        </tx:attributes>
    </tx:advice>
    <aop:config>
        <aop:pointcut id="ibatisBoOperation" expression="execution(* com.test.IbatisBaseBO.*(..))"/>
        <aop:advisor advice-ref="txAdvice" pointcut-ref="ibatisBoOperation"/>
    </aop:config>
   
       
    <bean id="dataSource"     <property name="jndiName">
            <value><--JNDI数据源名称--></value>
        </property>
    </bean>
   
    <bean id="sqlMapClient"     <property name="configLocation" value="WEB-INF/sqlmap-config.xml" />
        <property name="dataSource" ref="dataSource" />
    </bean>

    <bean id="commonDao"     <property name="sqlMapClient" ref="sqlMapClient"/>
    </bean>
   
    <bean id="exampleBO"     <property name="dao" ref="commonDao"/>
        <property name="extend" value="9014"/>
    </bean>
    <bean name="/Example"     <property name="bo" ref="exampleBO"/>
    </bean>
</beans>
3、添加ibatis的配置文件sqlmap-config.xml,因为整合在spring中,因此内容很简单
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd">

<sqlMapConfig>
<sqlMap resource="com/test/DemoMap.xml"/>
</sqlMapConfig>
4、添加校验资源文件MessageResources.properties
5、修改struts-config.xml文件,增加spring的插件
<message-resources parameter="resource.MessageResources" />
<message-resources key="test" parameter="com.test.TestMessage"></message-resources>
   
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
    <set-property property="contextConfigLocation" value="/WEB-INF/classes/resource/applicationContext.xml"/>
</plug-in>
   
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
   <set-property
       property="pathnames"
       value="/org/apache/struts/validator/validator-rules.xml,
              /com/test/TestValidation.xml"/>
</plug-in>
增加这些配置后,将原来的type改为使用spring的代理
     <action path="/TestInit" forward="test/TestInit.jsp"></action>
    <action path="/Example" type="org.springframework.web.struts.DelegatingActionProxy"
        name="testForm" scope="request" validate="true" input="test/Example.jsp">
        <forward name="cancel" path="test/DemoTest.jsp"/>
    </action>
6、修改web.xml文件,增加spring的上下文监听器和文件目录配置
    <context-param>
    <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
     <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
7、增加基础类
IbatisBaseDao用来完成基本操作
public abstract class IbatisBaseDao extends SqlMapClientDaoSupport{
    public abstract void insert(String stat,Object obj) throws DataAccessException;
    public abstract void delete(String stat,Object obj) throws DataAccessException;
    public abstract void update(String stat,Object obj) throws DataAccessException;
    public abstract List queryForList(String stat,Object obj) throws DataAccessException;
    public abstract Object queryForObject(String stat,Object obj) throws DataAccessException;
}
IbatisBaseBo完成业务逻辑处理
public abstract class IbatisBaseBO {
    protected IbatisBaseDao dao;

    public void setDao(IbatisBaseDao dao) {
        this.dao = dao;
    }
    public abstract void update(Object obj) throws Exception;
    public abstract void insert(Object obj) throws Exception;
    public abstract Object queryForObject(Object obj) throws Exception;
    public abstract List queryForList(Object obj) throws Exception;
    public abstract void delete(Object obj) throws Exception;
    public abstract void transOperation(Object[] obj)throws Exception;//多对象事务处理
}
IbatisBaseAction完成页面请求转发,继承原有的基础类
public abstract class IbatisBaseAction extends BaseAction {
    protected IbatisBaseBO bo;

    public abstract ActionForward process(ActionMapping mapping, BaseForm form, HttpServletRequest request, HttpServletResponse response) throws Exception;

    public void setBo(IbatisBaseBO bo){
        this.bo = bo;
    }
    public IbatisBaseBO getBo(){
        return bo;
    }
}
完成修改后,在开发新功能的过程中,需要完成如下内容
1、XxxMap.xml,完成ibatis内容的编写,增删改查等
2、增加资源文件,提供对页面出错信息以及显示内容的国际化处理
3、增加校验文件,提供对输入的检查,这个不是必需的,视情况而定
5、完成struts-config.xml和applicationContext.xml的配置
6、继承新增的基础类,完成业务处理程序

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring+struts+ibatis 的相关文章

随机推荐

  • Java---TCP通信

    目录 1 TCP通信 快速入门 编写客户端代码 步骤 客户端发送消息 总结 需求 服务端实现步骤 总结 2 TCP通信 多发多收消息 案例 使用TCP通信实现 多发多收消息 总结 3 TCP通信 同时接受多个客户端消息 重点 总结 4 TC
  • 简单解析transformer代码

    详解transformer代码 文章目录 详解transformer代码 1 代码下载 2 prepro py 2 1 首先进行语料预处理阶段 2 2 生成预处理过后的对应数据集 2 3 sentencepiece处理 3 data loa
  • 028-从零搭建微服务-搜索服务(二)

    写在最前 如果这个项目让你有所收获 记得 Star 关注哦 这对我是非常不错的鼓励与支持 源码地址 后端 https gitee com csps mingyue 源码地址 前端 https gitee com csps mingyue u
  • FISCO BCOS节点扩容和使用console进行群组扩容

    一 安装并启动FISCO BCOS 搭建单机单群组4节点的教程查看 https blog csdn net yueyue763184 article details 128924144 spm 1001 2014 3001 5501 二 下
  • 最小优先级队列 — 使用最小堆实现

    最小优先级支持的操作 1 INSERT S x 将元素x插入队列S 2 MINIMUM S 返回S中最小的元素 3 EXTRACT MIN S 去掉并返回S中最小的元素 4 DECREASE KEY S x key 将下标为x的元素值降低为
  • 获得代理ippython_python爬虫之抓取代理服务器IP

    前言 使用爬虫爬取网站的信息常常会遇到的问题是 你的爬虫行为被对方识别了 对方把你的IP屏蔽了 返回不了正常的数据给你 那么这时候就需要使用代理服务器IP来伪装你的请求了 免费代理服务器网站有 下面我们以西刺免费代理IP为例子看看是如何获取
  • ArcGISMapsSDK for UnrealEngine_AQ

    ArcGISMapsSDK for UnrealEngine AQ Prepare 1 ArcGIS Maps SDK for game engines 2 ArcGIS Maps SDK for Unreal Engine Beta 2
  • jQuery 的 DOM 操作- 中

    文章目录 jQuery 的 DOM 操作 中 复制节点 复制节点介绍 复制节点 应用实例 替换节点 替换节点介绍 替换节点 应用实例 属性操作 样式操作 样式操作介绍 应用实例 jQuery 的 DOM 操作 中 注意本篇和jQuery 的
  • 【java】常用到的一些获取文件内容的方法

    一 前奏准备 获取文件名 根据文件名获取路径 文件路径名 String path public String getPath return path 根据路径获取文件名 return 文件名字符串 public String fileNam
  • Cocos 2dx iOS 平台初始化,OpenGL 初始化,分辨率设置

    Cocos 2dx iOS 平台初始化 OpenGL 初始化 分辨率设置 1 Main m int retVal UIApplicationMain argc argv nil AppController AppController mm
  • 判断操作系统和浏览器类型(苹果还是安卓,微信还是QQ)

    一 获取操作系统类型 function getOS var userAgent navigator in window userAgent in navigator navigator userAgent toLowerCase var v
  • FPGA时序约束学习笔记——IO约束(转)

    一 参考模型 图源来自 抢先版 小梅哥FPGA时序约束从遥望到领悟 二 参数分析 T 0 gt 3 Tclk1 T 3 gt 4 Tco T 4 gt 5 T 5 gt 6 Tdata T 4 gt 5 Tdata Init T 5 gt
  • 渗透测试流程

    文章目录 前言 一 渗透测试流程 二 流程步骤 1 明确目标 2 信息收集 3 漏洞探测 4 漏洞验证 5 提权所需 6 信息分析 7 信息整理 8 形成报告 总结 前言 渗透测试 出于保护信息系统的目的 更全面地找出测试对象的安全隐患 入
  • python数据库连接

    python数据库连接 import os import time import pymysql import sys class Myclass object def init self try self db pymysql conne
  • Springboot整合Activiti详解

    文章目录 版本依赖 配置文件 需要注意的问题 画流程图 activiti服务类进行编写 流程部署 流程定义 启动流程 流程实例 测试流程 启动流程 完成任务 受理任务 版本依赖 开发工具 IDEA SpringBoot 2 4 5 这里我试
  • MySQL

    1 MySQL概述 1 什么是数据库 数据库是一个存储数据的仓库 2 都有哪些公司在用数据库 金融机构 游戏网站 购物网站 论坛网站 3 提供数据库服务的软件 1 软件分类 MySQL SQL Server Oracle Mariadb D
  • 初中计算机试题戏曲进校园,【校园通讯】“戏曲进校园”走进东街学校,春风化新雨,戏曲百媚生!...

    原标题 校园通讯 戏曲进校园 走进东街学校 春风化新雨 戏曲百媚生 戏曲进校园 戏曲进校园 走进东街学校 春风化新雨 戏曲百媚生 文 东街学校 张永慰 弘扬民族文化 展现戏曲精华 10月10日 戏曲进校园 活动走进济水东街学校 为全体师生带
  • 3.18飞书面试(58min)

    3 18飞书面试 58min 1 问项目 首先是问redis是怎么用的 mq的消费是怎么写的呢 mq如何保证消息消费的可靠性 你在项目中用到了本地缓存 放在了业务代码内存中 那如果签到一半你的项目突然崩了 本地缓存都消失了 那不是会出问题啊
  • [人工智能-深度学习-66]:架构 - 人工智能的学习误区与正确思路、方法

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122116482 目录 前言 第1章
  • spring+struts+ibatis

    原来的系统里面只采用了struts的框架 并且没有使用struts的校验功能 为方便开发 修改框架为spring struts ibatis组合1 添加需要的jar文件2 添加spring配置文件applicationContext xml