это bean-компонент формы 1.x в области сеанса или области запроса? - PullRequest
5 голосов
/ 23 июля 2011

Я искал конкретный ответ для этого, так как большая часть Google возвращает много очень старых сообщений. Это greetingActionForm в области запроса или в области сеанса? Есть ли какое-либо местоположение помимо объявлений action и form-bean для определения области формы?

<action-mappings>
    <action path="/hello/my/oldfriend"
            type="com.imFine.HowAreYouAction"
            name="greetingActionForm"
            validate="true"
            input="/the/front/door">
        <forward name="success" path="/go/get/drinks.do" />
    </action>
</action-mappings>
<form-beans>
    <form-bean name="greetingActionForm" type="com.forms.GreetingActionForm"/>
</form-beans>

1 Ответ

9 голосов
/ 24 июля 2011

Если не указано, по умолчанию ActionForm будет иметь область действия session.

Область действия ActionForm указывается в конфигурации <action> как атрибут scope.Вы можете найти это в Struts DTD :

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:
     .....
     .....
     scope           The context ("request" or "session") that is used to
                     access our ActionForm bean, if any.  Optional if "name" is
                     specified, else not valid. [session]
     .....
     .....

Это значение инициализируется в классе org.apache.struts.config.ActionConfig , который представляет конфигурациюинформация об элементе из файла конфигурации модуля Struts:

/**
 * <p> Identifier of the scope ("request" or "session") within which our
 * form bean is accessed, if any. </p>
 */
protected String scope = "session";
...