Starting Struts2摘抄(5)

Screenshot_2026-11-04-16-26-45-46.jpg 立即下载

 如果使用的不是struts-default.xml里面缺省的解释器,那么我们需要在web.xml当中对解释器
进行声明,并指定路径等操作,以便在package、action等位置进行使用。具体如下:

<!--在web.xml当中-->
<interceptors>
    <interceptor name="autowiring" class="interceptor.ActionAutowiringInterceptor"/>
</interceptors>

使用指定的Interceptor的位置有两个
1.指定action当中引用使用解释器
2.在包内所有action指定使用一个解释器

用法如下(并未实践过)

<!--在action当中使用的时候-->
<action name="my" class="com.fdar.infoq.MyAction" >
<result>view.jsp</result>
<interceptor-ref name="autowiring"/>
</action>

<!--在package当中指定-->
<default-interceptor-ref name="autowiring"/>
<!--把上面这条语句放在package定义以后紧跟就可以了-->

有一点要注意的是:对解释器定义位置的先后顺序以及放置的位置很关键。因为如果想要让
action可以使用解释器,那么必须在使用前给出定义引用位置也就是上述情况1中的语句。
这有点像C语言里面函数声明的味道。

另外,一个package可以缺省的指定,或者指定唯一的解释器。我感觉这个解释器的作用范围
类似与全局变量,而action自己指定的解释器引用可能会覆盖了包中的解释器。这是书中
没有解释的解释器作用范围。我想一个试验就可以证明了。大家可以参考struts2 core。

书中还提到,我们在action中可能遇到的解释器并不是一个。在struts-default.xml中有这样的
定义大家可以参考:

<interceptor-stack name="basicStack">
<interceptor-ref name="exception"/>
<interceptor-ref name="servlet-config"/>
<interceptor-ref name="prepare"/>
<interceptor-ref name="checkbox"/>
<interceptor-ref name="params"/>
<interceptor-ref name="conversionError"/>
</interceptor-stack>

实际上我们在文件中配置了一个叫做解释器栈的一个结构,那么我们引用这些解释器的时候
就无需逐一引用,从而避免造成无法管理的混乱局面。引用方法如下:

<action name="my" class="com.fdar.infoq.MyAction" >
<result>view.jsp</result>
<interceptor-ref name="basicStack"/>
</action>

这里与上面给出的引用单个解释器的形式是一样的。如果在package当中,我们也可以用
<!--在package当中指定-->
<default-interceptor-ref name="basicStack"/>
<!--把上面这条语句放在package定义以后紧跟就可以了-->
的形式完成操作。

这里我有一个疑问,也请大家讨论:
我们是不是可以模块一点,把解释器、解释器栈、解释器配置文件作为逐渐增大的一个模块
在工程里面用.xml文件形式保存,以extends的方式进行引用呢?我没看到相关介绍,大家可以
尝试。当然我有时间也会去尝试的。

互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识 立即下载

相关推荐

【动态多智能体系统的通信感知编队控制】一种新颖的通信感知编队控制策略,用于动态多智能体系统研究(Matlab代码、Python代码实现)

内容概要:文档名为《Plecs全桥LLC谐振变换器仿真模型.txt》,但其内容并未深入介绍Plecs环境下全桥LLC谐振变换器的具体建模与仿真过程,而是呈现为一份涵盖多领域科研主题的资源列表。文档内容广泛涉及多智能体系统控制、无人机路径规划、电力电子变换器、状态估计、信号处理、优化算法等研究方向,并多次提及Matlab/Simulink、Python等工具的代码实现。整体来看,该文档更像是一份科研项目目录或技术资源索引,重点推介了包括LLC谐振变换器在内的多种控制系统与电力电子仿真模型,但对标题所述核心内容缺乏详尽的技术描述与实现细节。; 适合人群:电力电子、自动化、控制工程、信号处理及多智能体系统等相关领域的研究生、科研人员与工程技术人员。; 使用场景及目标:①为科研工作者提供跨学科的技术方向参考与研究选题灵感;②获取电力系统、无人机控制、信号处理等领域成熟的Matlab/Simulink或Python仿真代码资源,用于算法验证与模型复现。; 阅读建议:建议将此文档作为科研资源导航目录使用,读者可根据自身研究方向筛选感兴趣的主题,并通过文中提供的公众号或网盘链接获取完整的代码、仿真模型与配套资料进行深入学习与实践。

Starting Struts2摘抄(4)

 Struts2解释器:负责异常处理、文件上传、回调生命周期以及认证。支撑action的预处理和后处理涉及的解释器:1.Spring Framework -- ActionAutowiringInterceptor2.Request String and Form Values -- ParametersInterceptor3.Servlet-based object -- Serv

Vincent--programming life 645

产业园区运营负责人如何提升企业技术需求与科研资源的精准匹配效率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

asp.net里面页面定位

我要在这里写的,完全是在我这个菜鸟的基础上,如果您看到觉得简单,请不要抱怨。如果您发现错误,我会虚心听您指教。如果要交朋友……常来我的blog座座。QQ:94768815                                                                                                                 

Vincent--programming life 3536

大模型-高通qnn基础

提供较低级别、高度可定制的统一API,通过单独的库加速所有AI加速器核心上的AI模型, 可以直接用于针对特定的加速器核心或从流行的运行时(包括Qualcomm Neural Processing SDK、TensorFlow Lite和ONNX运行时)委派工作负载。一个支持异构计算、系统级配置的一体化SDK,旨在将AI工作负载引导到我们平台上的所有加速器核心。为开发人员提供灵活性,包括核心间协作支持和其他高级功能。是一个为训练好的神经网络模型提供高级量化和压缩技术的库。

点滴的岁月 4093

嵌入式GUI显示驱动配置实战:从emWin硬件接口到SPI屏驱动优化

在嵌入式系统开发中,显示驱动是连接GUI库与物理屏幕的核心底层模块,其本质是CPU与显示控制器之间的数据“翻译”与“传输”系统。其工作原理是通过实现特定的硬件抽象层接口,将GUI生成的图形数据转换为屏幕能识别的时序和协议。这项技术的核心价值在于,它允许开发者在资源受限的MCU上,通过适配不同的硬件接口,以最小的硬件开销实现稳定的图形输出。其典型应用场景包括智能家居面板、工业HMI、可穿戴设备等嵌入式图形界面开发。本文将深入解析emWin GUI库的驱动框架,重点探讨如何针对SPI、I2C等串行接口进行高效的

weixin_29159711的博客 342

一个利用堆栈实现的正整数10进制向16进制的转化程序

/*用STACK将任意一个十进制数转化为十六进制数,输出*/#include "Stdio.h"#include "Conio.h"#define stackinitsize 100;#define stackincrement 10;typedef struct{    int *base;   int *top;    int stacksize;}sqstack; 

Vincent--programming life 2785

Dataset - DeepFashion 服装数据集

Dataset - DeepFashion 服装数据集 [Dataset - DeepFashion] [Project - DeepFashion] 1. 服装类别和属性预测集 [Category - Attribute 下载] [百度网盘] 289,222 张服装图片 clothes images; 50 个服装类别 clothing categories 1,000 ...

长风破浪会有时,直挂云帆济沧海 2万+

第一次按装solaris的流水帐

18:41开始安装Solaris10以第一张光盘启动,但是检测SCSI设备的时候,认为光盘从IDE设备下不可使用。报错:看到kernel是UNIx的18:43第一次死机,没办法,可能是内存值较小,好像不应该挂栽软驱,总是启动这个solaris有4种安装方式选择:1.Solaris Interactive2.Custom Jumpstart3.Solaris Interactive Text(con

Vincent--programming life 2235

有限元之有限元空间的构造

主要介绍有限元的空间构造方法。

欢迎各位大佬光临“寒舍”!请多多指点,共同进步! 762

Python爬虫抓取淘宝商品详情页信息:从入门到高级技术应用

通过本篇博客,我们了解了如何使用Python爬虫抓取淘宝商品详情页的信息,如何使用requests和Selenium抓取静态和动态内容,如何应对淘宝的反爬虫机制,如何将抓取的数据保存到CSV文件等。随着爬虫技术的不断发展,开发者可以根据需要选择合适的工具和技术,如使用分布式爬虫框架提高抓取效率,或者利用OCR技术处理验证码等问题。在进行淘宝爬虫时,需要注意遵循相关法律法规和平台的爬虫政策,避免对平台造成过度的负担或侵犯其合法权益。

2201_76125261的博客 462

Jboss4.2.*版本环境搭建产生问题解决总结

 环境搭建过程中,myeclipse配合jboss使用。奇怪现象是:当我配置myeclipse当中服务器通过。运行测试通过。运行中热部署通过。但是独立运行时报错如下:java.lang.UnsupportedClassVersionError: javax/****问题。查看jboss AS官方notes发现,jboss4.2以上的版本都必须要求1.5版本以上的jdk。从表面上看是编译器版本不

Vincent--programming life 2034

MATLAB 与 STK 互联生成Walker并导出轨道数据(CSV导出)

本文介绍了使用 MATLAB 控制 STK 完成以下自动化流程:打开并连接 STK 场景;自动创建 Delta 型 Walker 星座;添加矩形传感器并配置视场;获取轨道六根数与视场角信息;自动保存至 CSV 文件,供后续使用。

weixin_52370774的博客 737

DataStructure---LinkList 链表C语言实现代码

//=============================================================//链表具体函数实现部分//=============================================================#include "LinkList.h"#include #include "stdafx.h"void main(){ 

Vincent--programming life 1948

【护网必备】Windows平台shellcode免杀加载器

bypass:McAfee、金山(数字签名)、火绒、ESET、卡巴企业版(时间5s 抖动50 Sleep_mask)、360全家桶(物理机)、Norton(加白程序资源)、WDF(PC)、WDF(Server)、Symantec(加白程序资源)bypass:金山(数字签名)、火绒、ESET、360全家桶(物理机)、WDF(PC)、WDF(服务器提示复查(关云保护))、McAfee、Norton(加白程序资源)、卡巴企业版(时间5s 抖动50 Sleep_mask)必须使用Bof操作,shell运行就掉线。

Fly_鹏程万里 1186

基于Claude Code的 规范驱动开发(SDD)指南

传统的AI辅助开发,如同手工作坊,我们向AI描述想法,它给我们零散的部件,我们再手动打磨、组装。这个过程充满了不确定性、信息损耗和重复劳动。本指南将尝试引领您进入软件开发的“工业时代”。在这里,

形上得其象,形下合于数;阴阳自济,玄理自明。 2749

DataStructure---LinkedList,链表(定义部分)

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//                    Produced  By  fishstudio (R)  @  Aug, 2005//Description://    This is a ADT(Abstract D

Vincent--programming life 1945

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

DataStructure----LinerList,线性表C实现

//=============================================================================//LinerList.h//=============================================================================//初始化队列的长度#define LIST_INIT_S

Vincent--programming life 1827

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

串比较的若干算法归类————普通、KMP算法

KMP算法不是我想出来的,搜索一下网上描述很多,这里会在最后引用一段描述,给出的仅仅是算法。而且你会惊奇的发现,这个算法简直就是动过小手术的一个算法的重载,这里写下就是方便你的记忆,下面开始://++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//                      

Vincent--programming life 1556

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

最后的战役

这是最后的战役,对大学来说,对大学的我来说……                                                         ——题记也许这篇文章在本不应该出现的地方出现了,看着blog上自己的东西,忽然意识到已经是本科末路无归途的师哥,但又闻项目色变的菜鸟,心里难免有些难过。写下来,作为程序员生涯中的留念,倒也不错,当然,这是最后的战役,对大学来说,对大学的我来

Vincent--programming life 1501

minix管道实现小究

在考研复习时候遇到的问题,很想写下来,虽然时间已经很紧张,但是在我们师生的问答互助之间,学术似乎更显神圣了,比起肮脏的考试制度来说……(请配合代码看)问题表述:      在minix里面,使用如下命令会使系统在2个进程之间建立管道用来进行进程之间的通讯:      #cat file1 file2|sort     那么它的作用显而易见,列出file1和2的内容并排序放入另一文件。那么在内核当中

Vincent--programming life 1359

大学一年级做过的一道程序题——螺旋矩阵

/*螺旋矩阵*/#include #include #define DOWN    0#define LEFT    1#define UP      2#define RIGHT   3//N*N矩阵#define N   5void printMatrix(int *a[], int n) {    int i, j;    for (i = 0; i         for (j = 0;

Vincent--programming life 1276

一个分布式系统的偶然研究(updated)

这是一次很偶然的发现,连自己都觉得意外..............背景:1.本宿舍楼浴室            2.一卡通校园卡以及读卡收费器(自动感应)            3.刷卡规则,将一卡通卡片放在读卡器正面,1秒左右自动读取1元并开始放水,每4秒计费一次,每次               扣除1分钱。1元钱全部扣除或者再次刷卡都可将洗澡水停下。消费金额按照读卡器扣除金额为准。研究:2张

Vincent--programming life 1218

关于二叉树前序输入且输出结构的算法实现

#include #include #include #define ElementType int#define  MaxSize 511 //the number of the node is 2^levels-1                     //and the max level is 9//An array to store each value of the node i

Vincent--programming life 1207

基本的一个binarytree的遍历程序

// binarytree.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include struct node{ int value; int right; int left;}tree[15];void inorder(int root){ if(tree[root].left!=-1)  inorder(tree[root].left); printf(

Vincent--programming life 1120

Starting Struts2摘抄(6)

 自定义Interceptor的实施方案:1.实现Interceptor接口,该接口定义如下: public interface Interceptor extends Serializable {      void Destory();        void Init();        String intercept(ActionInvocation invocation)     

Vincent--programming life 749
上一篇: Starting Struts2摘抄(4)
下一篇: Starting Struts2摘抄(6)
fishstudio
博客等级 码龄23年 4粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值