UI Action中Action name需保持有效的可读性和唯一性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UI Action中Action name需保持有效的可读性和唯一性相关的知识,希望对你有一定的参考价值。
在SN中创建UI Action的时候会涉及到Action Name的填写,此Action Name并非显示名称,而是为了其他调用的而使用的名称,这个名称不会自动校验。一般不会提示出错。但碰到问题检查起来会非常苦恼。所以它的名称应尽量具有可读性和唯一性,当然重点在后者。案例:
点击某条记录的一个自定义取消按钮(cancel button). 点击之后会报如下错误:
Access to api ‘setAbortAction‘ from scope ‘x_xxxx‘ has been refused due to the api‘s cross-scope access policy。(x_xxxx只是新建的一个APP且没有其他任何多余的动作,所以我们并不认为是cross-scope access的问题)。
于是去检查setAbortAction,这个方法一般用于Business Rule。
我们通过记录去查找特定的Business Rule, 通过排查我们找到了一个"有问题的"BR", 我们将其设置为inactive,问题表面上解决了,没有再报错,但实际上数据并没有被真正处理,因为该数据以前一直运行正常,就因为我们新创建了一个APP?
最后经过更为繁琐的排查,我们发现某位同学在设置UI Action的时候把action 设置成了简单的cancel。所以系统会按照字母顺序去寻找,当找到第一个cancel的时候就会去触发。而新创建的App会自动生成某些特定的字段,所以它的cancel会默认在第一位。这就是出现错误的真正原因。
所以在定义Action Name的时候应该尽量让其具有可读性和唯一性。
以上是关于UI Action中Action name需保持有效的可读性和唯一性的主要内容,如果未能解决你的问题,请参考以下文章
剑道 UI 抛出 CS1593:委托“System.Action”不接受 1 个参数
在JSP中有一个butto按钮,怎么把参数通过点击onclick()事件,传入Struts2中的Action的具体方法中。