又是chain

 

情况是这样的:有一个名称为CreateIconaction,这个action的作用是上传一个图片文件并创建一个图标,如果图标创建成功则返回SUCCESSresult code,如果由于各种原因创建失败则返回ERRORresult code,这个action返回后,会将控制权移交给同一个chain中另一个名称为ListCategoryaction,并能过javascriptalert()方法弹出一个创建成功与否的对话框。这里的chainchain interceptorchain result共同作用而成。

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

查了很多资料,最后在webworkwiki里发现了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的映射文件中增多一个INPUTresult映射,这样就可以使整个流程得到正确执行。

<think>嗯,用户问“chain是什么意思?”,首先得确定他们指的是哪个领域的chain。因为“chain”这个词有很多不同的意思,在不同的上下文中可能有不同的解释。 首先,最常见的是字面意义的“链条”,比如自行车链或者项链。这时候用户可能是在日常生活中遇到了这个词,需要了解基本含义。但可能他们是在更专业的领域遇到这个词,比如科学、技术或者商业术语。 然后,考虑技术领域,比如区块链中的“链”(blockchain),这时候chain指的是一系列区块组成的链式结构。现在区块链挺热门的,用户可能是在学习相关知识时遇到的疑问。不过用户的问题比较简短,可能只是基础含义,但也不能排除这个可能性。 还有商业中的连锁店,比如“chain store”,用户可能想知道连锁企业的概念。如果用户对商业感兴趣,或者正在研究商业模式,这个解释就很重要了。 另外,数学或计算机科学中的链,比如链表(linked list),这也是一种数据结构。如果用户是学生或者程序员,可能需要这方面的解释。但需要更多的上下文才能确定,所以得在回答中涵盖这一点。 还有化学中的分子链,比如聚合物长链,如果用户是在化学课上遇到的,可能需要这方面的解释。不过同样,没有更多信息,可能需要简要提及。 另外,chain作为动词的意思,比如“用链条锁住”,或者比喻性的用法如“束缚”,但用户的问题可能更关注名词形式,不过还是应该简要提到动词用法,以防万一。 需要判断用户的背景和需求。可能的情况是普通询问,但用户可能有特定领域的需求,所以回答时要全面但分层次,先给出最常见的解释,再逐步深入各个专业领域,让用户可以根据自己的需要选择重点。 还要注意用例子来帮助理解,比如举例自行车链条、项链、区块链、连锁店等,这样用户更容易联想和记忆。 另外,检查是否有其他可能的含义,比如习语或短语,比如“chain of events”(一系列事件)或者“food chain”(食物链),这些也是常见的用法,需要包含在内。 总结下来,回答的结构应该是:基本含义(链条)→ 各专业领域(科技、商业、计算机等)→ 动词用法 → 常见短语。这样既全面又层次分明,用户能快速找到所需的信息。</think>“Chain” 是一个英语词汇,在不同语境下有多种含义,常见解释如下: --- ### 1. **基本含义:链条** - **物理实体**:指由金属环连接而成的链状物,如自行车链条、项链(necklace)等。 - **示例**: - “自行车的 **chain** 断了,需要修理。” - “她戴了一条金 **chain**。” --- ### 2. **抽象概念:连锁、系列** - **事件或逻辑的连续性**:表示一系列相互关联的事物或动作。 - **示例**: - “一连串的失误导致失败(a **chain** of mistakes)。” - “食物链(food **chain**)” 描述生态系统中能量的传递关系。 --- ### 3. **商业领域:连锁店** - **连锁企业**:指同一品牌下分布在多个地点的店铺。 - **示例**: - “星巴克是全球知名咖啡 **chain**。” - “连锁超市(supermarket **chain**)”。 --- ### 4. **科技领域** - **区块链(Blockchain)**:由“区块”链接成的去中心化数据库技术,用于加密货币(如比特币)等场景。 - **计算机科学**:如“链表(linked list)”,一种数据结构。 --- ### 5. **化学领域** - **分子链**:如聚合物(塑料、DNA)中的长链结构。 --- ### 6. **动词含义** - **用链条固定**:如“把自行车 **chain** 在栏杆上”。 - **束缚**(比喻):如“被工作 **chain** 住,无法脱身”。 --- ### 常见搭配短语 - **Chain reaction**(连锁反应) - **Chain mail**(锁子甲) - **Chain of command**(指挥链/层级体系) --- 根据具体场景,“chain” 的含义可能不同。如果你有特定领域的疑问,可以提供更多上下文,我可以进一步解答!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值