简体   繁体   中英

Scope attribute migration from Struts1 to Struts2

I am migrating an application from Struts1 to Struts2. I could migrate everything except the scope attribute from the below action tag of the Struts1 configuration file ( struts-config.xml ).

Struts1 configuration:

<action path="/DomainAndIPBlocking" 
        type="com.tarangtech.da.struts.action.DomainBlockedListAction" 
        name="DomainBlockForm" 
        scope="session" 
        input="/DomainAndIPBlocking.do"
        validate="false">
    <forward name="success" path="/jsp/SystemAdminConsol/DomainBlocking.jsp"/>
</action>

Migrated Struts2 configuration:

<action name="DomainAndIPBlocking" 
        class="com.tarangtech.da.struts.action.DomainBlockedListAction" 
        method="execute">
    <result name="success">/jsp/SystemAdminConsol/DomainBlocking.jsp</result>
</action>

The form DomainBlockForm has been integrated by extending the action class DomainBlockedListAction like this:

public class DomainBlockedListAction extends DomainBlockForm

It is required for me to carry forward the form values across the application. But these values are available in request/page scope only. So, I should have an alternative for scope="session" from Struts1 to Struts2, so that I can carry forward all the attributes across the application.

From the Struts 1 DTD in the Action Element definition:

    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]

In Struts 2, there are no Action Form beans, and Actions themselves default to request context. @meskobalazs is correct above, this can be overridden with the scope interceptor if you need session-scoped actions in Struts 2.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM