`
visualcatsharp
  • 浏览: 41188 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

又是chain

    博客分类:
  • Java
阅读更多
      情况是这样的:有一个名称为CreateIcon的action,这个action的作用是上传一个图片文件并创建一个图标,如果图标创建成功则返回SUCCESS的result code,如果由于各种原因创建失败则返回ERROR的result code,这个action返回后,会将控制权移交给同一个chain中另一个名称为ListCategory的action,并能过javascript的alert()方法弹出一个创建成功与否的对话框。这里的chain由chain interceptor和chain result共同作用而成。

      但当我在测试的时候上传一个6m左右大小的文件的时候,古怪的问题随之而来,创建失败的对话框适当的弹了出来,但ListCategory这个action的execute方法并没有执行,悲哀的是,弹出js对话框由ListCategory这个action返回的页面实现的。这就是说:控制权已经移交到ListCategory了,只是ListCategory的execute方法并没有执行,这是怎么一回事呢?查了一下log,有一条有趣的记录,意思是说:在ListCategory这个action里并没有result和INPUT这个result code对应,遍寻整个模块所属的x-work.xml文件,确实没有与INPUT这个result code对应的result,而且整个模块所有的action都没有返回INPUT的。这个INPUT到底是那里在那里返回的呢?

      查了很多资料,最后在webwork的wiki里发现了Workflow Interceptor的解释:

1.      If the action being executed implements Validateable, the action's Validateable#validate() validate method is called.

2.      Next, if the action implements ValidationAware, the action's ValidationAware#hasErrors() hasErrors method is called. If this method returns true, this interceptor stops the chain from continuing and immediately returns Action#INPUT

我的action是继承了ActionSupport类,而ActionSupport同是实现了Validateable的。于是当上传的文件超出了webwork设置的大小的时候(在webwork.properties里可以设置),Workflow Interceptor自动返回了INPUT。

         解决方法,很简单,把chain Interceptor放到栈底,然后在CreateIcon的映射文件中增多一个INPUT的result映射,这样就可以使整个流程得到正确执行。
分享到:
评论

相关推荐

    接龙数列(Chain Sequence)是一种数列

    接龙数列,又称为链接数列或连锁数列,是一种数学上的特殊序列,它具有独特的构造规则,每个数都是前一个数与特定运算结果。这类数列在数学、计算机科学以及逻辑思维训练中都有其独特的应用。接下来,我们将深入探讨...

    inspector-wrappers-test-utils.rar_The Chain

    当一个函数被调用时,它可以在其内部调用其他函数,这些被调用的函数又可以进一步调用其他函数,这样就形成了一条调用链。这种链式结构对于跟踪代码执行路径、理解和解决错误以及进行性能分析非常有用。 `inspector...

    PDF Chain:PDF工具包(PDFtk)的图形用户界面-开源

    PDF Chain是一款专为PDF处理设计的图形用户界面(GUI)工具,它基于著名的PDF Toolkit(PDFtk)。...总的来说,PDF Chain是处理PDF文档的理想选择,尤其是对于那些需要频繁进行PDF操作但又不熟悉命令行的用户。

    KLSudoku标准数独游戏软件1.1版

    数独游戏是九宫格(即3格宽×3格高)的正方形状,每一格又细分为一个九宫格。在每一个小九宫格中,分别填上1至9的数字,让整个大九宫格每一列、每一行的数字都不重复。数独每一局都肯定有解,并且只有唯一解。 ...

    tsjs-chain-xipfs-sdk:官方Proximax Sirius-Chain + IPFS(又名DFMS)SDK

    Proximax P2P存储打字稿SDK-tsjs-chain-xipfs-sdk ProximaX是一个将Sirius-Chain区块链技术与IPFS P2P存储技术结合使用的项目,它类似于区块链技术解决方案,为以不变且不可逆的方式存储的文档或文件形成了非常强大...

    Another Link in the Chain

    ### RFID技术:供应链管理的新链接 #### 一、引言 随着科技的不断发展与进步,新兴技术正在逐步...随着技术的进一步发展和完善,我们可以期待RFID在未来发挥更大的作用,成为连接数字世界与实体世界的又一重要纽带。

    Swap of Quantum Information between Two-End States in an Open Ferromagnetic Spin Chain

    在这篇标题为“Swap of Quantum Information between Two-End States in an Open Ferromagnetic Spin Chain”的文章中,宋涛、朱士群以及向浩提出了一种新的量子信息传输机制。他们使用了一种特殊的物理系统——...

    光敏电阻测试数码管显示_chain5gz_51单片机_titlezuv_

    光敏电阻,又称为光敏探测器或光敏二极管,是一种能够根据接收到的光线强度改变其电阻值的元件。在暗环境中,光敏电阻的电阻值很高;当暴露在光照下时,电阻值会显著下降。这种特性使得光敏电阻在各种光照检测应用...

    (OC链式布局)ChainLayout

    这种方式既直观又方便,大大减少了代码量。 ChainLayout还支持更多的高级特性,例如居中对齐、等间距布局、自适应宽度和高度等。例如,如果你想让一个视图居中显示,可以这样写: ```objc view.centerInSuperview...

    Advertising and pricing policies in a two-echelon supply chain with a capital-constrained retailer

    在供应链管理的实践中,供应商和零售商需要基于对市场需求、价格敏感度、广告弹性以及融资成本等多方面因素的综合考量,制定出既能够满足短期融资需求,又能促进长期合作与共同发展的策略。这不仅需要高度的专业知识...

    hex-chain:六角形载链发生器

    **六角形载链发生器**,又称为Hex Chain Generator,是一种基于JavaScript编程语言实现的图形生成工具。这个工具主要用于创建和展示六边形网格结构的图形,这种结构在游戏开发、地图绘制、数据可视化等领域有广泛...

    S-Parameter to ABCD Chain Matrix:该函数可以将2-Port S-Parameter矩阵转换为ABCD Chain矩阵-matlab开发

    ABCD参数,又称传输矩阵,是对双端口网络的一种数学表示,由4个复数系数A、B、C和D组成,它们描述了网络前后两端口电压和电流的关系。具体来说,A和D对应于无反射条件下的电压传输,B和C则与反射相关。在MATLAB中,...

    散列表C++实现(不同装载因子的开放寻址法和链表法比较)

    1.chain-hash-onetime.exe:是使用链表法的散列程序,它是在n=100000,m=20000,即装载因子是5的情况下测试的。该程序显示了从开始到全部插入,再到全部成功查找,最后全部删除的过程,并统计和各项数据。 2.open_hash...

    linux iptables 手册

    `iptables`能够定义多个独立的表,每个表又可以包含内置链或用户自定义链。 #### 命令结构与语法 `iptables`的基本命令格式如下: ```shell iptables [-t table] -[AD] chain rule-specification [options] ``` ...

    操作系统区块链跨链技术人工智能互链网白皮书.pdf

    2016-2017 年出现机构区块链互联网模型(互链网),例如Cosmos(宇宙)、Polkadot、熊猫模型、金丝猴模型、卫星模型(日本NEC 的Satellite 系统),后来又出现许多区块链模型,例如以太坊2.0 都有类 似概念。同时间...

    KLSudoku标准数独游戏1.1版源码(219)

    数独游戏是九宫格(即3格宽×3格高)的正方形状,每一格又细分为一个九宫格。在每一个小九宫格中,分别填上1至9的数字,让整个大九宫格每一列、每一行的数字都不重复。数独每一局都肯定有解,并且只有唯一解。 ...

    LDA数学八卦.pdf

    LDA将每篇文档视为一系列主题的混合,每个主题又是一系列词语的混合,其中词语的分布是根据相应的主题确定的。 2. 伽马函数(Gamma Function):伽马函数是阶乘概念在实数和复数上的扩展,记为Γ(x),它是欧拉积分...

    电子商务英文课件:ch06 E-Supply Chains,Collaborative Commerce

    供应链管理(Supply Chain Management, SCM)是一个复杂的过程,旨在协调各种活动,确保从供应商到客户的商品和服务运输既高效又有效。SCM的目标是降低库存水平,优化生产计划,减少运输时间,并提升客户满意度。 ...

    LDA数学八卦

    其核心思想是认为文档是由多个主题混合而成,而每个主题又是由多个词混合而成,LDA的目标是通过算法来推断出文档中隐含的主题结构。 LDA模型的推导涉及到概率图模型、Dirichlet分布和多项式分布等数学概念。概率图...

Global site tag (gtag.js) - Google Analytics