JPetStore中Struts和Spring的整合

Masta调用Geometry Modeller(Space Claim)进行根据三维模型快速建模设置方法 masta中调用ANSYS的space claim的设置方法 阅读详情
使用一种更简单的方式,这种方法不是用Spring集成了Struts,而是Struts去调用Spring所提供的服务,这也是Spring官方自带的JpetStore例子中所采用的方法。这种方法的主要优点是简洁,另外Struts和Spring的耦合非常松散,如果要改用SpringMVC或其他Web层框架换掉Struts,对其他层几乎没有影响,这也是Spring自带的JpetStore这么做的一个原因,这里我们还可以选择用SpringMVC或Struts,只要改一下配置就可以了。但缺点也是很明显的,就是Struts的Action并不在Spring可管理的范围之内,也就是说,Action并不是Spring中的一个Bean,这样,对于Struts的Action,无法使用Spring时的事务处理等服务。不过一般来说,需要事务的部分尽量放在业务层去做,Action中不应包含太复杂的操作和逻辑,所以,这种Struts和Spring综合应用的方法对一般项目来说还是可行的。如果有特殊需求,可以考虑其他几种集成Spring和Struts的方法,以便Spring对Struts的Action进行管理。

先建立一个BascAction,它继承了Action类,而其他自定义的Action都要继承这个BaseAction。

/**

 *

 */

package com.ascent.struts.action;

 

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionError;

import org.apache.struts.action.ActionErrors;

 

import com.ascent.bean.Customer;

import com.ascent.business.IBookService;

import com.ascent.business.ICustomerService;

import com.ascent.business.IOrderItemService;

import com.ascent.business.IOrderService;

import com.ascent.util.AppContext;

 

/**

 * @author 

 *

 */

public class BaseAction extends Action {

 

    /**

     *

     */

    public BaseAction() {

        super();

    }

 

    protected IBookService getBookService() {

        return (IBookService) AppContext.getInstance().getAppContext(). getBean(

                "bookService");

    }

   

    protected IOrderService getOrderService() {

        return (IOrderService) AppContext.getInstance().getAppContext(). getBean(

                "orderService");

    }

   

    protected ICustomerService getCustomerService() {

        return (ICustomerService) AppContext.getInstance().getAppContext(). getBean(

                "customerService");

    }

    protected IOrderItemService getOrderItemService() {

        return (IOrderItemService) AppContext.getInstance().getAppContext(). getBean(

                "orderItemService");

    }

    protected String checkUser(HttpServletRequest request,

            HttpServletResponse response){

        Customer user = null;

        user = (Customer) request.getSession().getAttribute("user");

        if(user==null){

   

            System.out.println("you have no loginning!!!!");

            ActionErrors errors = new ActionErrors();

            errors.add(ActionErrors.GLOBAL_MESSAGE,new ActionError("errors. login"));

            this.saveErrors(request,errors);

            return null;

        }else{

            return user.getCustName();

        }

       

       

       

    }

 

}


/**

 *

 */

package com.ascent.util;

 

import org.springframework.context.support.*;

 

/**

 * <p>Title: bookstoressh</p>

 *

 * <p>Description: bookstore System</p>

 *

 * <p>Copyright: Copyright (c) 2005</p>

 *

 * <p>Company: ascenttech</p>

 *

 * @author 

 * @version 1.0

 */

public class AppContext {

 

  private static AppContext instance;

 

  private AbstractApplicationContext appContext;

 

  public synchronized static AppContext getInstance() {

    if (instance == null) {

      instance = new AppContext();

    }

    return instance;

  }

 

  private AppContext() {

    this.appContext = new ClassPathXmlApplicationContext(

        "applicationContext.xml");

  }

 

  public AbstractApplicationContext getAppContext() {

    return appContext;

  }

}

如果在Struts中定义了一个继承自BaseAction的Action,那么就可以通过getXXXService()的方法来得到某一个service的实例,继而可以实现对业务方法的调用。这里实际上使用了一个设计模式——服务定位器(service locator)。

 
南方电网专业面试题(电气类-继电保护)(目录) 南方电网专业面试题(电气类-继电保护)(目录) 这些面试题围绕继电保护的基本概念、工作原理、分类、性能要求,以及变压器、断路器、母线保护、自动重合闸等电力系统关键设备的保护机制和操作原则展开,旨在评估应聘者对电力系统保护和控制策略的深入理解和实际应用能力。 阅读详情

相关推荐

spring boot 集成cas(一) 服务端搭建

简单点就是统一服务认证,多个系统一次登录。俗称单点登录。

慕孑晨的博客 1957

基于struts+spring+ibatis的 J2EE 开发(jpetstore分析)

1. 前言Struts 是目前Java Web MVC框架中不争的王者。经过长达五年的发展,Struts已经逐渐成长为一个稳定、成熟的框架,并且占有了MVC框架中最大的市场份额。但是Struts某些技术特性上已经落后于新兴的MVC框架。面对Spring MVC、Webwork2 这些设计更精密,扩展性更强的框架,Struts受到了前所未有的挑战。但站在产品开发的角度而言,Struts仍然是最稳妥的...

我的j2ee的专栏 165

基于 OptiSystem 的掺铒光纤放大器(EDFA)分析

通过构建 EDFA 仿真模型,系统分析了铒离子掺杂半径、离子浓度、光纤长度及泵浦功率等关键参数对放大器增益和噪声特性的影响规律,为 EDFA 的优化设计提供了理论依据与仿真支撑。继续增大至 9μm,增益趋于稳定(约 19dB)。继续增加至 200mW,增益仅增加 2dB,表明泵浦功率存在阈值效应(约 100mW),超过后增益饱和明显。:作为增益介质,主要参数包括光纤长度(5~50m)、铒离子掺杂半径(1~10μm)、离子浓度(1×10²⁵~5×10²⁵m⁻³)、纤芯半径 2.2μm、数值孔径 0.24。

2501_91855190的博客 2679

基于struts+spring+ibatis的轻量级J2EE开发

基于struts+spring+ibatis的轻量级J2EE开发     大多

tyouvivi的专栏 1101

【RK3399】Android平台增加一款声卡设备(ES7210+ES8156),进行录音/播放测试。

文章目录前言一、开发环境二、概述三、硬件介绍1、ES72102、ES81563、数字麦克风阵列4、音频示意图四、下载SDK五、编译、烧写1、u-boot2、kernel3、Android SDK4、烧写分区5、烧写固件六、声卡驱动1、添加codec代码2、修改Kconfig3、修改Makefile4、修改rockchip_defconfig5、修改DTS七、声卡调试1、查看声卡注册信息2、使用tinycap/tinyplay录音和放音3、使用示波器观测八、修改HAL层1、修改默认capture/playba

rentong123的博客 2万+

别再死磕DH参数了!用MATLAB Robotics Toolbox + SOLIDWORKS搞定六轴机械臂仿真(附避坑指南)

本文详细介绍了如何利用MATLAB Robotics Toolbox和SOLIDWORKS进行六轴机械臂仿真,避免常见的DH参数错误和模型导出问题。通过实战指南和避坑技巧,帮助工程师实现从三维建模到运动学仿真的无缝衔接,提升仿真效率和准确性。

weixin_27066963的博客 395

基于struts+spring+ibatis的 J2EE 开发(转载)

1. 前言Struts 是目前Java Web MVC框架中不争的王者。经过长达五年的发展,Struts已经逐渐成长为一个稳定、成熟的框架,并且占有了MVC框架中最大的市场份额。但是Struts某些技术特性上已经落后于新兴的MVC框架。面对Spring MVC、Webwork2 这些设计更精密,扩展性更强的框架,Struts受到了前所未有的挑战。但站在产品开发的角度而言,Struts仍然是最稳妥的...

Satan 143

Keil5保姆级安装指南:从破解到STM32开发环境配置(附常见错误解决方案)

本文提供Keil5从安装到STM32开发环境配置的完整指南,包含破解步骤、常见错误解决方案及多芯片支持配置。详细讲解环境预检、核心安装、许可证管理及高效开发环境设置,帮助开发者快速搭建嵌入式开发平台。特别针对安装和卸载过程中的关键问题提供专业解决方案。

weixin_30369041的博客 126

struts+spring+ibatis轻量级J2EE开发(转)

struts+spring+ibatis轻量级J2EE开发(转)[@more@]  多数IT 组织都必须解决三个主要问题:1.帮助组织减少成本 2.增加并且保持客户 3.加快业务效率。完成这些问题一般都需要实现对多个业务系统的数...

congjukun0600的博客 233

告别BAPI!深入SAP S/4HANA BP框架:cl_md_bp_maintain维护客户主数据的正确姿势与性能优化

本文深入解析SAP S/4HANA中cl_md_bp_maintain框架的高效实践与架构设计,对比传统BAPI方式,展示其在业务伙伴(BP)主数据维护中的性能优势与现代化特性。通过详细代码示例和性能测试数据,揭示如何利用该框架实现批量处理、集中校验及智能错误恢复,助力企业从ECC向S/4HANA平滑迁移。

weixin_30596735的博客 361

深度学习100例-卷积神经网络(CNN)彩色图片分类 | 第2天

文章目录前期工作设置GPU导入数据标准化可视化构建CNN网络编译训练模型预测模型评估 前期工作 设置GPU 如果使用的是CPU可以忽略这步 import tensorflow as tf gpus = tf.config.list_physical_devices("GPU") if gpus: gpu0 = gpus[0] #如果有多个GPU,仅使用第0个GPU tf.config.experimental.set_memory_growth(gpu0, True) #设置GPU显存用量

“365天深度学习训练营”报名进行中~ 7856

IBATIS入门学习记录

看了这篇文章,写的很好http://blog.youkuaiyun.com/KimSoft/archive/2007/04/24/1576918.aspx再准备仔细研读下《ibatis开发指南》可以看看官方的jpetstore,学习具体实例 再考虑和struts,spring的整合问题Appfuse中整合ibaits的内容,感觉比较乱http://appfuse.org/display

Layne的专栏 551

【RT-DETR有效改进】全新的SOATA轻量化下采样操作ADown(轻量又涨点,附手撕结构图)

本文给大家带来的改进机制是利用2024/02/21号最新发布的YOLOv9其中提出的ADown模块来改进我们的Conv模块,其中YOLOv9针对于这个模块并没有介绍,只是在其项目文件中用到了,我将其整理出来用于我们的YOLOv8的项目,经过实验我发现该卷积模块(作为下采样模块)首先可以大幅度降低参数值,其次其精度上也有很高的提升,同时本文的内容目前网络上并无其它人总结(也是最新发布的,可以说BUff是集满了)大家可以尝试以下在自己数据集上的效果。

Snu77的博客 4774

jpetstore 学习的好例子 struts+spring+hibernate

   今天看spring的jpetstore,不知从何看起,看到这个帖子,一时有如遇知音,好文啊引自http://blog.youkuaiyun.com/lvchaoxv/archive/2006/11/09/1375351.aspx1.先建张表用的是mysql数据库..文章表.  CREATE     TABLE   `t_article` (  `a_id`   int  (  1

autoinspired的专栏 984

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Spring自带的JPetStore分析(一)

Spring MVC + Spring + iBATIS 或Struts MVC + Spring +iBATIS使用的是Spring自带的例子,与iBATIS给出的例子还有有区别================安装:我使用的环境是Mysql,Tomcat4按照readme的说明编译好war文件后,根据两个文件创建数据库表和插入数据,配置jdbc,会发现WEB-INF下面没有东西,其实所有的ser

maxway的专栏 3846

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

学习Spring 附带源码jpetstore 一 安装配置篇

学习Spring 附带源码jpetstore   一 安装配置篇        因为公司下一个项目准备上Spring,主要也因为自己喜欢.看了一些Spring doc,包括Xiaxin的Spring开发向导,还有Spring in Action及其他一些doc,也看了许多坛子里的贴子,可总感觉着只见树木,不见森林.计算机专业的知识,看来光看书就是不见火呀.非要动手才来得快.    

yeafee的专栏 4746

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

read-jpetstore-2-进入jpetstore

进入JpetStore Ø Ø Struts 中的配置 Ø URL访问: http://127.0.0.1:8080/jpetstore/shop/index.do ● 所有Action的基类BaseAction /** * JPetStore中所有Struts action 的基类。 * 它通过ServletContext...

lwfshr 206

Spring JPetStore 例子说明

=========================================== Spring JPetStore 例子说明 =========================================== 作者 Juergen Hoeller基于 Clinton Begins JPetStore (http://www.ibatis.com).  1

1852

基于struts+spring+ibatis的轻量级J2EE开发(转)

大多数IT 组织都必须解决三个主要问题:1.帮助组织减少成本 2.增加并且保持客户 3.加快业务效率。完成这些问题一般都需要实现对多个业务系统的数据和业务逻辑的无缝访问,也就是说,要实施系统集成工程,以便联结业务流程、实现数据的访问与共享。 JpetStore 4.0是ibatis的最新示例程序,基于Struts MVC框架(注:非传统Struts开发模式),以ibatis作为持久化层。该示例...

xujian161的专栏 246

read-jpetstore-1-安装与配置

项目导入 登录http://www.springframework.org/download官方网站下载 spring-framework-2.5.4-with-dependencies.zip,解压缩 在Eclipse中选择:新建Web项目,然后将jpetstore目录中的SRC下的源码复制到我们刚刚新建的工程中;然后将war目录的文件复制到WebRoot目录,将所需的JAR包复制到...

小头猪 180

Spring MVC框架搭建(spring4.0+hibernate4.3)

Spring下载地址: http://repo.springsource.org/libs-release-local/org/springframework/spring/   Hhibernate下载地址: http://sourceforge.net/projects/hibernate/files/     1. jar包引入   spring-f

refire 1878

Spring jPetStore err:org.apache.jasper.JasperException: /WEB-INF/jsp/struts/IncludeTop.jsp(23,0) According to TLD or attribute d

Sping Demo JpetStore 当web.xml配置和struts整合时,运行jsp页面会出现如下错误:org.apache.jasper.JasperException: /WEB-INF/jsp/struts/IncludeTop.jsp(23,0) According to TLD or attribute directive in tag file, attribute test

7563

架构图

1.Spring架构图 [img]http://p.blog.youkuaiyun.com/images/p_blog_youkuaiyun.com/liuxiaotao008/spring-overview.png[/img] [img]http://p.blog.youkuaiyun.com/images/p_blog_youkuaiyun.com/liuxiaotao008/spring1.gif[/img] [img]http:/...

zxmzwq的博客 159

和Sun一起开源(武林外传游戏外挂Java源代码)

package game;import javax.swing.*;import java.awt.*;import java.awt.event.*;import javax.swing.event.*;import java.lang.*;import java.io.*; //主类public class Action{ static int TimeNumber=0; public s

SunnyMoon(月下泉声)博客空间 (此博客已废弃,新博客地址:http://sunnymoon.javaeye.com/) 4898
上一篇: WEB互动的革命 - JSF框架中使用的设计模式介绍
下一篇: JAVA开源项目大全
SunnyJavaMoon
博客等级 码龄21年 20粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值