Java struts-config.xml文件的action元素中的scope属性有多少个值可用

Java struts-config.xml文件的action元素中的scope属性有多少个值可用,java,jsp,scope,struts,Java,Jsp,Scope,Struts,的“action”元素中的“scope”属性有多少个值可用 struts config.xml文件,而不是“请求”和“会话” 范围属性只有两个可能的值:请求和会话,如struts配置的DTD中所述: <!-- The name of a JSP bean scope within which such a form bean may be accessed. --> <!ENTITY % RequestScope "(request|session)"> ... ...

的“action”元素中的“scope”属性有多少个值可用
struts config.xml
文件,而不是“请求”和“会话”


范围属性只有两个可能的值:请求和会话,如struts配置的DTD中所述:

<!-- 
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:

或者在此处提供更易于阅读的DTD文档:

“应用程序”和“页面”呢

跨JSP页面的对象范围可以是:

  • 页面-只能从创建对象的同一JSP页面中访问该对象
  • 请求-使用请求范围创建的对象可以从服务于该请求的任何页面访问
  • 会话可以从属于同一会话的页面访问对象(跨越同一客户端的多个请求,会话中保持状态,每个客户端都有自己的会话)
  • 应用程序-可以从应用程序中的任何页面访问此范围内的对象(所有用户共享应用程序范围内的相同对象,所有用户共享一个对象)
现在,struts配置中的作用域指创建/查找ActionForm对象的位置。ActionForm表示客户端HTML表单的服务器对象表示

有应用范围的表单是没有任何意义的,因为它对每个人来说都是一个表单,我甚至想不出它有什么用处。因此,该字段没有应用价值

现在假设您拥有页面范围。那怎么办?Struts不想转到JSP文件,因为它还没有控制权,如何将ActionForm保存在仍然没有页面作用域的页面的页面作用域中?!与向方法发送值类似,但您尝试从方法外部在方法代码中直接创建局部变量,而不是发送方法参数

因此只有两个值有意义:请求会话。如果你想要额外的东西,你必须自己管理

Struts是一个通用框架,它并没有涵盖所有可以想象或无法想象的情况,它涵盖了大多数正常的用例场景,对于这些场景,请求和会话是您所需要的全部。

关于“应用程序”和“页面”呢?
<!-- 
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>