的“操作”元素中的“作用域”属性有多少个可用值
除了“请求”和“ session ”以外的struts-config.xml
文件?
<action name="loginform" path="/bkplogin" scope="?" type="org.springframework.web.struts.DelegatingActionProxy">
最佳答案
作用域属性只有两种可能的值:struts-config的DTD中所述请求和 session
<!--
The name of a JSP bean scope within which such a form bean may be accessed.
-->
<!ENTITY % RequestScope "(request|session)">
...
...
<!ATTLIST action scope %RequestScope; #IMPLIED>
请在此处查看DTD:
http://struts.apache.org/dtds/struts-config_1_3.dtd
或以下是DTD的更易阅读的文档:
http://struts.apache.org/1.x/struts-core/dtddoc/struts-config_1_3.dtd#action
好了,跨JSP页面的对象范围可以是:
现在,struts-config中的作用域指的是在哪里创建/查找ActionForm对象。一个ActionForm代表客户端HTML表单的服务器对象表示。
具有具有应用程序范围的表单没有任何意义,因为它将是每个人的一种表单,我什至不认为这将是有用的。因此,该字段没有任何应用值(value)。
现在,假设您具有页面范围。那将如何工作? Struts将RequestDispatcher.forward/redirect转到JSP文件,它如何将ActionForm保存在仍没有页面范围的页面的页面范围内,因为它还没有控制权?就像将值发送给方法一样,您尝试从方法外部直接在方法代码中创建局部变量,而不是发送方法参数。
因此,只有两个有意义的值:请求和 session 。如果您想要额外的东西,则必须自己进行管理。
Struts是一个通用框架,它不涵盖所有可以想象或无法想象的案例,它涵盖了大多数常规用例场景,对于这些场景而言,您将只需要请求和 session 。
关于java - struts-config.xml文件的action元素中的scope属性有多少个可用值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4713822/