在我们的网络应用程序的struts-config.xml文件中,定义了一堆<action>
,它们中的大多数都有name
和attribute
属性,两者都有表单名称。例如:
<action
attribute="LoginForm" <-- this line
name="LoginForm"
path="/welcome"
type="com.foo.presentation.action.LandingActionPre">
<forward name="SUCCESS" path="landing.welcome" />
<forward name="ALREADY_LOGGED_IN" path="/landing.do?m=getLandingPage" redirect="true"/>
</action>
attribute
属性有什么作用?或者它是否被使用并且错误地存在于此处?
这个应用程序已经存在了大约10年,并且已经看到超过40位程序员在此期间触及代码库。因此,有可能将其添加到一些操作中,并且每个其他人都将其复制并粘贴到应用程序的其余部分,而不是更好。
答案 0 :(得分:0)
根据Struts 1 doc type definition,它被用作ActionForm的一种别名。
如果它与name
相同,则不执行任何操作。但是,如果指定了name
且指定了attribute
且与name
不同,则可以使用name
或attribute
的值来访问表单。< / p>
相关部分:
<!-- The "action" element describes an ActionMapping object that is to be used
to process a request for a specific module-relative URI. The following
attributes are defined:
attribute Name of the request-scope or session-scope attribute that
is used to access our ActionForm bean, if it is other than
the bean's specified "name". Optional if "name" is specified,
else not valid.